深入浅出Python机器学习
上QQ阅读APP看书,第一时间看更新

4.3.1 岭回归的原理

从实用的角度来说,岭回归实际上是一种能够避免过拟合的线性模型。在岭回归中,模型会保留所有的特征变量,但是会减小特征变量的系数值,让特征变量对预测结果的影响变小,在岭回归中是通过改变其alpha参数来控制减小特征变量系数的程度。而这种通过保留全部特征变量,只是降低特征变量的系数值来避免过拟合的方法,我们称之为L2正则化。

岭回归在scikit-learn中是通过linear_model.Ridge函数来调用的,下面我们继续使用波士顿房价的扩展数据集为例,看看岭回归的表现如何。现在在jupyter notebook里输入代码如下:

按下shift+回车键,将会得到结果如图4-11所示。

图4-11 岭回归的模型评分

【结果分析】现在我们看到,使用岭回归后,训练数据集的得分比线性回归要稍微低一些,而测试数据集的得分却出人意料地和训练集的得分一致,这和我们的预期基本是一致的。在线性回归中,我们的模型出现了轻微的过拟合现象。但由于岭回归是一个相对受限的模型,所以我们发生过拟合的可能性大大降低了。可以说,复杂度越低的模型,在训练数据集上的表现越差,但是其泛化的能力会更好。如果我们更在意模型在泛化方面的表现,那么我们就应该选择岭回归模型,而不是线性回归模型。