机器学习实践之scikit-learn:Ridge Regression (岭回归)

岭回归 通过对系数的大小施加惩罚来解决 普通最小二乘 的一些问题。 ridge coefficients ( 岭系数 ) 最小化一个带罚项的残差平方和,

\underset{w}{min\,} {​{|| X w - y||_2}^2 + \alpha {||w||_2}^2}

这里 \alpha \geq 0 是控制缩减量的复杂度参数: \alpha 值越大,缩减量越大, 因此系数变得对共线性变得更加鲁棒。

../_images/sphx_glr_plot_ridge_path_0011.png

(图中有10个系数,当alpha较大时,对系数大小的惩罚较大,所以系数分布在0附近;alpha较小时,则系数较发散。具体参考以下第一个示例)

与其他线性模型一样,Ridge 类成员函数 fit 以数组Xy为输入,并将线性模型的系数 w 存储在其成员变量coef_ 中:

>>> from sklearn import linear_model
>>> reg = linear_model.Ridge (alpha = .5)
>>> reg.fit ([[0, 0], [0, 0], [1, 1]], [0, .1, 1]) 
Ridge(alpha=0.5, copy_X=True, fit_intercept=True, max_iter=None,
      normalize=False, random_state=None, solver='auto', tol=0.001)
>>> reg.coef_
array([ 0.34545455,  0.34545455])
>>> reg.intercept_ 
0.13636...

示例:

Ridge Complexity ( 岭复杂性 )

这种方法与 Ordinary Least Squares ( 普通最小二乘方法 ) 的复杂度相同。

Setting the regularization parameter: generalized Cross-Validation ( 设置正则化参数:广义交叉验证 )

RidgeCV 通过内置的 Alpha 参数的交叉验证来实现岭回归。 该对象的工作方式与 GridSearchCV 相同,只是它默认为 Generalized Cross-Validation ( 通用交叉验证 ) (GCV),这是一种有效的留一交叉验证法

>>> from sklearn import linear_model
>>> reg = linear_model.RidgeCV(alphas=[0.1, 1.0, 10.0])
>>> reg.fit([[0, 0], [0, 0], [1, 1]], [0, .1, 1])       
RidgeCV(alphas=[0.1, 1.0, 10.0], cv=None, fit_intercept=True, scoring=None,
    normalize=False)
>>> reg.alpha_                                      
0.1

参考:

 

参考:

scikit-learn 0.19 文档

scikit-learn 0.18 中文文档

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值