【机器学习】线性回归算法的过拟合比较

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Daycym/article/details/84337954

回顾

  • 过拟合与欠拟合 主要介绍了什么是欠拟合什么是过拟合
  • 对抗过拟合 主要介绍了线性回归中对抗过拟合的方法,主要包括:L1-norm的LASSO回归、L2-norm的Ridge回归,此外还有一个没有提到,L1-norm和L2-norm结合的Elasitc Net(弹性网络)

Ridge模型具有较高的准确性、鲁棒性以及稳定性;LASSO模型具有较高的求解速度;
如果既要考虑稳定性也考虑求解的速度,就使用Elasitc Net

后面我们将对线性回归、LASSO回归、Ridge回归以及Elasitc Net模型的过拟合比较

下面我们首先来看看过拟合是什么样子的

线性回归过拟合示例

图中真实数据点是由
y = 1.8 x 3 + x 2 14 x 7 y = 1.8*x^3 + x^2 - 14*x - 7
再加上随机数产生的,表示三阶模型应该是最好的模型

在这里插入图片描述

上图我们通过多项式线性回归实现了不同阶数的数据拟合程度
当阶数为1时,为一条直线,不能够很好的拟合数据,属于欠拟合
当阶数为3时,基本与数据拟合,正确率基本为1,因为我们加入了随机数,所以3阶模型不可能百分百拟合
当阶数为5时,正确率达到了1,已经达到了最大值,再往后就是过拟合了
当阶数为9时,我们可以明显发现,曲线在前面一段有突变,出现严重过拟合,往后就更过拟合了

源代码可见:Github下的06_过拟合.py

回归算法过拟合比较

在这里插入图片描述

图中我们可以看出:

  • 线性回归在9阶时出现了过拟合,而其他回归模型没有
  • 因为其他三个模型都对过拟合进行的处理

源代码可见:Github07_回归各种算法的过拟合比较.py

猜你喜欢

转载自blog.csdn.net/Daycym/article/details/84337954