1.1.1 Ordinary Least Squares(普通最小二乘法)
LinearRegression(线性回归)是一个线性模型,其具有系数 s=(w1…wp) s = ( w 1 … w p ) ,这个线性回归函数最小化了数据集中真实数据的最小残差平方和,也就是通过线性估计进行了预测。在数学上解决了
minw||Xw−y|| min w | | X w − y | |
.
LinearRegression 采用了fit这个方法,使用了arrayX,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_
有点问题,最小二乘法的参数估计依赖模型的各项的独立性。当各项是相关的并且 X的各个列近似线性依赖的关系时候,就会导致X非常接近奇异矩阵(非满秩),最小二乘法的估计就会对 数据集中的随机误差非常敏感,导致大的方差。例如,在没有实验设计的情况下收集数据时,就会出现多重共线性的情况。
1.1.1.1. Ordinary Least Squares Complexity(复杂性)
假定是n*p的矩阵(n>p),利用对X的奇异值分解的方法(标记一下没看懂,后面补理解)解出来,复杂度
O(np2) O ( n p 2 )
1.1.2. Ridge Regression
为了避免过拟合加的对w的惩罚,成了最小化
minw||Xw−y||+α||w||22 min w | | X w − y | | + α | | w | | 2 2
α α 越大,很显然对w的惩罚越大,防止过拟合的程度越高。
RIdge也采用了fit(x,y)这种模式,并且coef_保存了w的值。alpha_保存了alpha值,可以通过模型获取相关系数。
示例代码:
from sklearn import linear_model
reg = linear_model.Ridge(alpha =.5)#重要系数alpha
reg.fit([[0, 0], [1, 1], [2, 2]], [0, 1, 2])
reg.coef_
1.1.2.1. Ridge Complexity
和普通的最小二乘法的复杂度一样。 O(np