岭回归,其实也是一种线性回归。只不过在算法建立回归方程时候,加上正则化的限制,从而达到解决过拟合的效果。
带有L2正则化的线性回归——岭回归
1API
- sklearn.linear_model.Ridge(alpha=1.0,fit_intercept=True,solver=“auto” normalize=False)
- 具有L2正则化的线性回归
- alpha:正则化力度(=惩罚项系数),也叫λ
- λ取值:0 ~ 1 1 ~ 10
- solver:会根据数据自动选择优化方法
- sag:如果数据集、特征都比较大,选择该随机梯度下降优化
- normalize:数据是否进行标准化
- normalize=False:可以在fit之前调用preprocessing.StandardScaler标准化数据
- Ridge.coef_:回归权重
- Ridge.intercept_:回归偏置 中
Ridge方法相当于SGDRegressor(penalty=‘l2’,loss=“squared
loss”),只不过SGDRegressor实现了一个普通的随机梯度下降学习,推荐使用Ridge(实现了SAG)
- sklearn.linear model.RidgeCV(_BaseRidgeCV, RegressorMixin)
- 具有12正则化的线性回归,可以进行交叉验证
- coef_:回归系数
class BaseRidgecV(LinearModel):
def__init__(self, alphas=(0.1,1.0,10.0),
fit intercept=True, normalize=False,scoring=None,
cv=None, gcv mode=None,
store_cv_values=False):
2观察正则化程度的变化,对结果的影响?
- 正则化力度alpha越大,权重系数W会越小
- 正则化力度alpha越小,权重系数W会越大
3代码实例
运行后:
estimator = Ridge()
estimator = SGDRegressor(learning_rate=“constant”, eta0=0.01)