版权声明:本文为博主原创文章,未经博主允许不得转载。 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模型的过拟合比较
下面我们首先来看看过拟合是什么样子的
线性回归过拟合示例
图中真实数据点是由
再加上随机数产生的,表示三阶模型应该是最好的模型
上图我们通过多项式线性回归实现了不同阶数的数据拟合程度
当阶数为1时,为一条直线,不能够很好的拟合数据,属于欠拟合
当阶数为3时,基本与数据拟合,正确率基本为1,因为我们加入了随机数,所以3阶模型不可能百分百拟合
当阶数为5时,正确率达到了1,已经达到了最大值,再往后就是过拟合了
当阶数为9时,我们可以明显发现,曲线在前面一段有突变,出现严重过拟合,往后就更过拟合了
源代码可见:Github下的06_过拟合.py
回归算法过拟合比较
图中我们可以看出:
- 线性回归在9阶时出现了过拟合,而其他回归模型没有
- 因为其他三个模型都对过拟合进行的处理
源代码可见:Github下07_回归各种算法的过拟合比较.py