正则化
设计模型时首先要让模型足够复杂
- L2正则化
- 作用:可以使得其中一些W的都很小,都接近于0,削弱某个特征的影响
- 优点:越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象
- Ridge回归
|w1|的平方+…+|wn|的平方 < 100 设定一个上限
-
L1正则化
- 作用:可以使得其中一些W的值直接为0,删除这个特征的影响
- LASSO回归
|w1|+…+|wn| < 100 设定一个上限
正则化线性模型
- 岭回归Ridge Regression线性回归+L2正则化
代价函数cost function:
J(\theta)=M S E(\theta)+\alpha \sum_{i=1}^{n} \theta_{i}^{2}
- Lasso Regression(Lasso回归)线性回归+L1正则化
代价函数cost function:
J(\theta)=\operatorname{MSE}(\theta)+\alpha \sum_{i=1}^{n}\left|\theta_{i}\right|
- Elastic Net(弹性网络) 线性回归+ L1 L2正则化,由r参数决定是岭回归还是Lasso回归
弹性网络在岭回归和Lasso回归中进行了折中,通过 混合比(mix ratio) r 进行控制:
- r=0:弹性网络变为岭回归
- r=1:弹性网络便为Lasso回归
代价函数cost function:
J(\theta)=M S E(\theta)+r \alpha \sum_{i=1}^{n}\left|\theta_{i}\right|+\frac{1-r}{2} \alpha \sum_{i=1}^{n} \theta_{i}^{2}
- Early stoping 待补充
Early Stopping 也是正则化迭代学习的方法之一, 但不是线性回归.
其做法为:在验证错误率达到最小值的时候停止训练。
api:
1 2 |
from sklearn.linear_model import Ridge, ElasticNet, Lasso |
tips:
正则化力度alpha(超参数) 越大可训练参数越大