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