监督学习-广义线性模型01-普通最小二乘法

线性模型:输出是输入的线性组合,即:

$$y(w,x)=w_0+w_1x_1+\cdots+w_px_p$$

在sklearn中,变量 coef_ 存储向量 $w=(w_1,\cdots,w_p)$,变量 intercept_ 存储 $w_0$。

1
from sklearn import linear_model

线性回归

普通最小二乘法(Ordinary Least Squares)就是简单的计算残差和:

$$min_w{||Xw-y||_2}^2$$

这个算法叫做 线性回归(Linear Regression):

1
2
3
from sklearn import linear_model

estimator = linear_model.LineaRegression(...)

简单的线性回归只在输入X数据集的各特征之间线性不相关时表现良好。

当X的特征线性相关时,估计结果受随机误差影响大,此时就需要进行模型的矫正。


脊回归/岭回归

当特征间 共线性(Collinearity)关系较强时,脊回归(Ridge Regression)可以使模型具有收缩能力。

这通过给线性回归添加L2正则项实现:

$$min_w{||Xw-y||_2}^2+\alpha{||w||_2}^2,其中\alpha\le0$$

1
2
3
4
from sklearn import linear_model

# 指定关键超参数α的值
estimator = linear_model.Ridge(alpha=0.5)

对于α,可以使用交叉验证进行最优解搜索:

1
2
3
4
5
from sklearn import linear_model

# 给定α的取值范围,默认值如下
# cv指定交叉验证的折数,默认如下,默认使用留一交叉验证(Leave-One-Out CV)
estimator = linear_model.RidgeCV(alpha=[0.1, 1.0, 10.0], cv=None)

Lasso

Lasso是用来估计稀疏系数的线性模型,和其变异体广泛用于语义压缩领域?

$$min_w\frac1{2n_{samples}}{||Xw-y||_2}^2+\alpha||w||_1,其中\alpha\le0$$

1
2
3
4
from sklearn import linear_model

# α默认值如下
estimator = linear_model.Lasso(alpha=1.0)
----- For reprint please indicate the source -----
0%