![机器学习编程:从编码到深度学习](https://wfqqreader-1252317822.image.myqcloud.com/cover/201/38335201/b_38335201.jpg)
5.1 线性回归的不足
我们的朋友Roberto请求我们再最后帮助他一次(他发誓这是最后一次)。Roberto的比萨店坐落在时尚的柏林街区。在生意兴隆的晚上,常常会有吵闹的顾客在比萨店前闲逛,直到受到影响的街坊邻居叫来警察(如果你曾经住在柏林,那么你就有可能理解顾客的理由和邻居的理由)。
Roberto猜想,同样的输入变量,如气温和游客数量,不仅会影响比萨销量,而且会影响吵闹顾客的数量,间接影响警察过来的可能性。他想要提前知道警察是否有可能过来,这样他就可以预先采取一些措施,比如走出店门请求吵闹的顾客小声一点。
一如既往,Roberto向我们发来了一个带标签的数据文件。开头的几行如下:
![](https://epubservercos.yuewen.com/432DF4/20180619108106606/epubprivate/OEBPS/Images/059-i.jpg?sign=1739302793-O6mLuqzn4WCXaWzlZLXtW2PRDOPZkrgW-0-eb54fd6d1e3c7baa8bc11f14045df6b9)
这是我们用来训练线性回归模型的样本数据,与先前的数据相比只有一个区别:标签值要么是0,表示当天晚上比较安静;要么是1,表示当天晚上警察来了。Roberto希望系统能够预测最后一列中的二进制数字。
由于Roberto希望能够将样本数据分类为0或1,所以这是一个分类问题。我们可能会想到使用现有的代码来解决这个问题。但不幸的是,这种方法会失败,原因如下。
线性回归使用一条直线来近似拟合样本数据,如下图所示:
![](https://epubservercos.yuewen.com/432DF4/20180619108106606/epubprivate/OEBPS/Images/059-2-i.jpg?sign=1739302793-JP7rM9DPOhfYQQrsOAUPC2j3iDuRVin3-0-525dd0e6f5a0d8d2d262803591c2e8cd)
线性回归模型预测有一个隐含的假设,即假设样本数据在一开始就是大致对齐的。如果这些样本数据点分布在某个曲线周围或者是随机分布,那么就不能使用一条直线来近似拟合它们。如果没有这条直线,那么我们就不能做出预测。这个道理同样适用于具有多个输入变量的线性回归模型,无论我们是画一条直线、一个平面还是一个高维空间,都需要能够合理地近似拟合样本数据点的分布。否则,我们就无法使用线性回归模型进行预测。
现在来看看Roberto的文件。为了降低难度,我们首先暂时忽略“温度”和“游客”这两个变量,只需要在样本特征变量上标出“座位预订数”列即可,如下图所示:
![](https://epubservercos.yuewen.com/432DF4/20180619108106606/epubprivate/OEBPS/Images/060-i.jpg?sign=1739302793-FHBMypwAZFGUKOy7gbxhr7qfMIdc1HDZ-0-f0a2351a8f14436a7adc2fe2ea89d10d)
即使只是看一眼这些样本数据的分布特征,我们就可以断定线性回归模型并不适用于这些分类样本数据。这些点的分布根本就不能够对齐,我们又怎么能够画出这条直线呢?
线性回归模型不仅是这种分类数据的一种糟糕近似,而且还是一种不稳定的近似。为了理解这是什么意思,请想象一下如果Roberto的样本数据里有一个异常值,即该值距离其他数据点非常远。可能某天晚上比萨店的座位预订数非常多,但是由于警察罢工,没有任何警察过来。如果你将这种具有异常值的样本数据添加到数据集中,使用线性回归方法产生的直线会发生很大的偏移,如下图所示。
![](https://epubservercos.yuewen.com/432DF4/20180619108106606/epubprivate/OEBPS/Images/060-2-i.jpg?sign=1739302793-xFcU2hZKIMDv53EVRPZwPLqkwLLZFFJ6-0-524041ccb11190e52932eafb8f5393f0)
明白了吗?异常值的存在可能会导致线性回归方法产生一条完全不同的直线,从而形成完全不同的预测结果。因此,这个线性模型不仅是对样本数据点的一个糟糕近似,还对异常的样本数据极为敏感。
长话短说,线性回归模型并不适用于这种分类样本数据。现在我们来寻找一种适用于这种分类样本数据的数学模型。