Ridge 回归通过对系数的大小施加惩罚来解决 普通最小二乘法 的一些问题。 岭系数最小化的是带罚项的残差平方和,
m
i
n
w
∣
∣
X
w
−
y
∣
∣
2
2
+
α
∣
∣
w
∣
∣
2
2
\underset{w}{min\,} {{|| X w - y||_2}2 + \alpha {||w||_2}2}
wmin∣∣Xw−y∣∣22+α∣∣w∣∣22 其中,
α
≥
0
\alpha \geq 0
α≥0 是控制系数收缩量的复杂性参数:
α
\alpha
α 的值越大,收缩量越大,这样系数对共线性的鲁棒性也更强。 与其他线性模型一样, Ridge 用fit 方法将模型系数
w
w
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...
岭回归的复杂度: 与普通最小二乘法相同
设置正则化参数:广义交叉验证 RidgeCV通过内置的
A
l
p
h
a
Alpha
Alpha 参数的交叉验证来实现岭回归。 该对象与
G
r
i
d
S
e
a
r
c
h
C
V
GridSearchCV
GridSearchCV 的使用方法相同,只是它默认为
G
e
n
e
r
a
l
i
z
e
d
C
r
o
s
s
−
V
a
l
i
d
a
t
i
o
n
(
广
义
交
叉
验
证
G
C
V
)
Generalized Cross-Validation(广义交叉验证 GCV)
GeneralizedCross−Validation(广义交叉验证GCV),这是一种有效的留一验证方法(LOO-CV):
>>> 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
|