二、岭回归
1、原理
如果样本量特别小的时候,容易造成过拟合现象。
在进行回归系数推导的时候我们引入正则化项
如果数据的特征比样本点还多应该怎么办?是否还可以使用线性回归和之前的方法来做预测?
答案是否定的,即不能再使用前面介绍的方法。这是因为输入数据的矩阵X不是满秩矩阵。非满秩矩阵在求逆时会出现问题。
为了解决这个问题,统计学家引入了岭回归(ridge regression)的概念
缩减方法可以去掉不重要的参数,因此能更好地理解数据。此外,与简单的线性回归相比,缩减法能取得更好的预测效果。
【注意】在岭回归里面,决定回归模型性能的除了数据算法以外,还有一个缩减值lambda*I
岭回归是加了二阶正则项(lambda*I)的最小二乘,主要适用于过拟合严重或各变量之间存在多重共线性的时候,岭回归是有bias的,这里的bias是为了让variance更小。
归纳总结
1.岭回归可以解决特征数量比样本量多的问题
2.岭回归作为一种缩减算法可以判断哪些特征重要或者不重要,有点类似于降维的效果
3.缩减算法可以看作是对一个模型增加偏差的同时减少方差
岭回归用于处理下面两类问题:
1.数据点少于变量个数
2.变量间存在共线性(最小二乘回归得到的系数不稳定,方差很大)
2. 实例
-
创建岭回归模型
-
使用前面过拟合的poly的4次多项式 x_poly4作为特征,y作为标签,进行训练
-
预测
-
绘图
查看红色的曲线,和以前的poly4的四次曲线(绿色)进行对比,现在的拟合程度就比以前好得多了,因为使用岭回归模型进行了惩罚,现在的惩罚系数为1000,是从默认为1慢慢修改尝试的,惩罚力度越大,过拟合程度越小
对比蓝色曲线(二次曲线,既没有过拟合,也没有欠拟合)进行对比,可以发现惩罚过后的红色曲线比较接近蓝色曲线的趋势 -
查看回归系数
惩罚力度越大,回归系数缩减的越厉害,回归系数越趋于简单化,过拟合程度在逐渐降低
3. 案例
- 导入波士顿房价数据
- 取出相关数据
3.1 普通线性回归模型
-
创建普通线性回归模型,训练
-
预测训练标签和预测测试标签,进行相关对比
-
查看均方误差
经验误差和泛化误差
说明以上算法模型在训练集上的性能体现非常好,而在测试集上的性能体现非常差,造成了过拟合 -
查看回归系数
该数据有13个特征,所以有13个回归系数,可以发现,回归系数之间差距很复杂,该模型过拟合
3.2 用岭回归来进行拟合
-
创建岭回归模型,训练
可以通过修改惩罚系数来初步查看误差值的改变,可从1开始慢慢往上升 -
预测
可以通过数据初步发现,训练集上的数据并没有之前那么良好,因为通过岭回归模型进行惩罚了;但是在测试集上的性能也没有那么差了 -
查看均方误差
虽然泛化误差明显减小了,但经验误差有所上升 -
对比普通线性回归模型和岭回归回归模型的回归系数
可以发现,岭回归的回归系数比普通线性回归的回归系数小
3.3 确定alpha的最优值
-
创造一些数据
-
创建一系列的缩减系数
-
用以上定义的缩减系数来创建ridge模型
训练的时候不允许打断,这是一个for循环,否则会造成数据的错乱
绘制图像
查看这图像,x的取值范围是log10 -10 ~ log10 -2
可以发现引入的惩罚项的系数λ在不断缩减,不断趋近于0,说明复杂程度在减小 -
再让其缩减一次,查看log10 -2 ~ log105 这个范围内的变化
将上面的内容复制一下,修改x的取值范围
查看图像
通过图像可以发现,x的取值为log10-2 ~ log103 时,已经无限趋近于0,说明此时惩罚力度已经到极限,趋于稳定,再往后,惩罚的变化就不大了,所以,惩罚到log103 时,就趋近最佳