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

4.4.3 套索回归与岭回归的对比

接下来,我们继续用图像的方式来对不同alpha值的套索回归和岭回归进行系数对比,运行下面的代码:

运行代码,我们会得到结果如图4-19所示。

图4-19 不同alpha值对应的套索回归系数值与岭回归系数值对比

【结果分析】从图中我们不难看出,当alpha值等于1的时候,不仅大部分系数为0,而且仅存的几个非零系数数值也非常小。把alpha值降低到0.01时,如图中正三角形所示,大部分系数也是0,但是等于0的系数已经比alpha等于1的时候少了很多。而当我们把alpha值降低到0.000 1的时候,整个模型变得几乎没有被正则化,大部分系数都是非零的,并且数值变得相当大。作为对比,我们能看到圆点代表的是岭回归中的系数值。alpha值等于0.1的岭回归模型在预测能力方面基本与alpha值等于0.1的套索回归模型一致,但你会发现,使用岭回归模型的时候,几乎所有的系数都是不等于0的。

在实践当中,岭回归往往是这两个模型中的优选。但是如果你的数据特征过多,而且其中只有一小部分是真正重要的,那么套索回归就是更好的选择。同样如果你需要对模型进行解释的话,那么套索回归会让你的模型更容易被人理解,因为它只是使用了输入的特征值中的一部分。

注意 scikit-learn还提供了一种模型,称为弹性网模型(Elastic Net)。弹性网模型综合了套索回归和岭回归的惩罚因子。在实践中这两个模型的组合是效果最好的,然而代价是用户需要调整两个参数,一个是L1正则化参数,另一个是L2正则化参数。