下面是一组用于回归的方法,其中目标值预计是特征的线性组合。在下面的数学符号中\hat{y} 是预测值
上式中 w = (w_1, ..., w_p) 是 coef_,w_0 intercept_
coef_
intercept_
Ordinary Least Squares
线性回归拟合一个系数是w = (w_1, ..., w_p)的线性模型以最小化数据集中观测目标与线性近似预测的目标之间的平方和。用数学描述问题的形式如下:
线性回归将采取拟合的方法拟合X,y,并将系数w存储在线性模型的coef_属性中。
from sklearn import linear_model reg = linear_model.LinearRegression() reg.fit([[0, 0], [1, 1], [2, 2]], [0, 1, 2]) reg.coef_
array([0.5, 0.5])
使用最小二乘法对系数的估计依赖于变量的独立性,当变量是相关的并且设计矩阵X的列具有近似线性的相关性时,设计矩阵变得接近奇异,因此,最小二乘估计变得对观测目标的随机误差高度敏感,产生较大的方差。例如,在没有进行实验设计的情况下收集数据,就会出现这种多重共线性。
有可能将所有的系数都约束为非负值,当它们代表一些实际的或自然的非负数量(例如,频率计数或商品价格)时,这可能是有用的。线性回归接受一个布尔正参数: 当设置为真正非负最小二乘然后应用。
最小二乘解是使用X的奇异值分解来计算的。如果X是的矩阵形状是(n_samples, n_features),则该方法的代价为O(n_{\text{samples}} n_{\text{features}}^2),假设n_{\text{samples}} \geq n_{\text{features}}
(n_samples, n_features)
Ridge regression and classification
岭回归通过对系数的大小施加惩罚来解决一般最小平方法的一些问题。岭系数最小化处罚残差平方和:复杂度参数\alpha \ge 0控制收缩量:\alpha的值越大,收缩量就越大,因此系数对共线的鲁棒性就越强。
coeff_
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)
reg.coef_
array([0.34545455, 0.34545455])
reg.intercept_
0.1363636363636364