机器学习-线性回归-过拟合问题

一、线性回归的拟合情况

       欠拟合:模型在训练过程中,模型在训练集和测试集中的表现差,即模型的泛化能力弱。

       过拟合:模型在训练过程中,模型在训练集上变现非常好但在测试集上表现差,即模型的泛化能力太强。

   

        从左上往右下,依次第一幅图是原始样本分布,第二幅图明显过度迎合数据,已经过拟合了,第三幅图明显偏移数据过多是欠拟合,最后一幅图训练比较少维度不过高且很好的拟合了数据属于拟合性较好的情况。

       线性回归欠拟合一般是因为数据特征不够或数据太少。

       在线性回归中,出现欠拟合往往使用多项式扩展,将数据由低维映射到高维。

       比如:有个样本为[2, 3]

                  二项式扩展为:[2, 3, 4, 9, 6]

                  三项式扩展为:[2, 3, 4, 9, 6, 8, 27, 12, 18]

       但是随着维度的增高,数据的增大,会出现维度过多,进而导致过拟合。

        

       当维度是一阶时无法很好的拟合数据,当维度是五阶时,模型能很好地拟合数据,但是当维度扩展到九阶时,维度过深,运算复杂度大大增加,且容易迎合异常数据导致过拟合。

二、线性回归应对过拟合的原理

       正则化

       正则化是线性回归应对过拟合问题的方案,其有两个正则化项L1-normal和L2-normal

       正则化项其实是在线性回归损失函数的基础上加入了的惩罚项。

      原始的损失函数:

          \large J(\theta )=\frac{1}{2}(h_\theta (x^{(i)})-y^{(i)})^2

       L1-normal

          \large \large \large J(\theta )=\frac{1}{2}(h_\theta (x^{(i)})-y^{(i)})^2+\lambda \left | \sum_{i=0 }^{n }\theta _{j} \right |      \large \lambda >0

      L2-normal:

         \large \large \large J(\theta )=\frac{1}{2}(h_\theta (x^{(i)})-y^{(i)})^2+\lambda\sum_{i=0 }^{n }\theta _{j} ^2          \large \lambda >0

      L1-normal又称LASSO回归,L2-normal又称Ridge回归。

      

      左边的图为L1-normal,右边的图为L2-normal。(可将\large \beta看作\large \theta)

      等高线部分表示损失函数,中心点表示实际的最优的结果,蓝色区域代表\large \beta _1+\beta _2的取值范围。我们希望参数值\large \beta足够小同时保证\large \beta值距离中心点最近,也就是其和等高线相切的那个点。

      在L2-normal,对于各个维度的参数是缩放在一个圆里面的,几乎不可能有导致维度参数\large \beta为0的情况,因此不会产生稀疏解;而L1-normal对于各个维度的参数是缩放在一个菱形里的,很有可能在某些情况下产生维度参数\large \beta为0的情况,导致产生了稀疏解。

三、L1-normal和L2-normal的比较

      L1-normal(LASSO)的惩罚项是一个绝对值参数,有较高的求解速度

      L2-normal(Ridge)在进行完数据清洗,清除完冗余特征后,有较高的准确率、鲁棒性和稳定性

      如果要将L1-normal和L2-normal结合起来使用就是Elasitc Net算法(弹性网络算法)

      \large J(\theta )=\frac{1}{2}(h_\theta (x^{(i)})-y^{(i)})^2+\lambda \left [ p\lambda \theta_j ^{2}+(1-p)\left | \theta _{j} \right | \right ] \left\{\begin{aligned} \lambda >0 \\ p\epsilon [0, 1] \\ \end{aligned} \right.

猜你喜欢

转载自blog.csdn.net/yangjiajia123456/article/details/90344196