拟合状态模型
,预测值和真实值本身差距就很远。预测的很大。
,会去刻意得迎合异常值,导致预测值的会比较大。
是有两部分构成的:过拟合的方差+欠拟合的偏差2。
通过上述公式可以推导出一个 的概念
07 回归算法 - 过拟合欠拟合案例
在过拟合欠拟合案例中,我们使用来解决欠拟合的问题,但随着多项式扩展维度的增加,最后模型会变得过拟合。
1阶多项式扩展欠拟合,5阶多项式扩展相对比较优秀,9阶多项式扩展过拟合。
观察9阶多项式扩展的结果,系数都非常大。这是模型过多迎合了异常值造成的结果。
9阶多项式扩展形成的模型很难对测试集上的值进行准确预测。
过拟合,意味着函数在迎合异常值。而当线条在要迎合某一点异常值的时候,斜率会非常大。原本平滑的线条需要迎合了异常值后再回来。 所以,模型系数大,导数值大,意味着模型迎合了异常值。模型过拟合。
为了防止数据过拟合,也就是θ值在样本空间中不能过大/过小,可以在目标函数之上增加一个损失函数:
在J(θ)中,λ的值越大,损失函数对模型的约束力越好。
用 L2正则 的线性回归模型,称为 Ridge回归 (岭回归)
用 L1正则 的线性回归模型,称为 LASSO回归
PS:回过头去看,L1、L2正则其实就是。(SVM中讲到的算法,请融会贯通)
L1、L2中加入惩罚项之后,对应的就是。
08 回归算法 - 解决过拟合 - L2(Ridge)和L1(LASSO)正则 这章里解释了L1、L2正则的工作原理。
=== ===
,所以不可能导致有维度参数变成0的情况,那么也就不会产生;Ridge模型具有较高的准确性、鲁棒性以及稳定性;
可以达到最终解的稀疏性要求。LASSO模型具有较高的求解速度;
当我们觉得每个特征都是有用的,用L2。如果想用回归的手段确定特征的可用性,用L1。
详解 对于一组参数θk,其中有一个或多个θ等于0,或近似等于0。称这组参数θk存在稀疏解。稀疏的解可以找到有用的维度并减少冗余,提高预测的和(减少了overfitting)。
y=ax1+bx2+c; 若求解得到 a=3; b=0; c=2;
我们发现x2特征对于结果的预测没有任何帮助,所以可以将x2的特征删除。
=== ===
Elastic Net案例
同时使用L1正则和L2正则的线性回归模型就称为Elastic Net,
09 回归算法 - 机器学习调参
在实际工作中,对于各种算法模型(线性回归)来讲,我们需要输入θ、p、λ的值。
θ=(XTX)-1XTY ;算法会自动生成,无需人工干预。p、λ 都是超参数;需要人工调整。
如交叉验证:将训练数据分成多份,其中一份进行数据验证,并获取最优的超参:p、λ;常见的方法:k折交叉验证。五折交叉验证 (scikit-learn中默认)
划分为k个互斥子集,用k-1作为训练集,剩下一个为测试集,最终每一个子集都会作为测试集,其余子集作为训练集,共进行k次建模,最终得到测试结果的均值。k取值一般为10。随机取k个互斥子集,进行p次,最后p个k-fold cv进行取平均,叫做p次k折交叉验证。
k折交叉验证即能帮我们挑选出最优参数,也能帮我们挑选出最优模型。
k折交叉验证的目的:
得到模型相对稳定的评价指标,尽可能避免异常值带来的影响。
通过:在划分的时候选择多个训练集和多组测试集,求平均的效果。通过平均的度量使得测试结果相对可信一点。