线性回归
目录
一、线性回归介绍
二、多元线性回归
1、原理
2、最小二乘法求解多元线性回归的参数
3、sklearn练习
三、回归类模型评估指标
1、是否预测到了正确的数值
2、是否拟合到了足够的信息
四、岭回归和Lasso
1、多重共线性
2、岭回归
3、Lasso
一、线性回归介绍
回归是一种应用广泛的预测建模技术,这种技术的核心在于预测的结果是连续型变量。KNN这样的分类算法的预测标签是分类变量,而无监督学习算法比如KMeans并不求解标签。它可能是机器器学习算法中产生最早的算法之一,其在现实中的应用非常广泛。
线性回归是源于统计分析,是结合机器器学习与统计学的重要算法。通常来说,我们认为统计学注重先验,而机器器学习看重结果,因此机器学习中不会提前为线性回归排除共线性等可能会影响模型的因素,反而会先建立模型以查看效果。模型确立之后,如果效果不好,我们就根据统计学的指导来排除可能影响模型的因素。
回归需求在现实中非常多,所以我们自然也有各种各样的回归类算法。最著名的就是我们的线性回归和逻辑回归,从他们衍生出了了岭回归,Lasso,弹性网(岭回归和Lasso的组合),除此之外,还有众多分类算法改进后的回归,比如回归树,随机森林的回归,支持向量回归,贝叶斯回归等等。除此之外,我们还有各种鲁棒的回归:比如RANSAC,Theil-Sen估计,胡贝尔回归等等。
二、多元线性回归
1、原理
多元线性回归:
y ^ = w 0 + w 1 x 1 + w 2 x 2 + . . . + w n x n \hat{y}=w_0+w_1x_1+w_2x_2+...+w_nx_n y^=w0+w1x1+w2x2+...+wnxn
从矩阵来表示这个方程:
y ^ = X w \hat{y}=Xw y^=Xw
其中可以被看做是一个结构为(n+1,1)的列矩阵, 是一个结构为(m,n+1)的特征矩阵,就是构造一个预测函数来映射输入的特征矩阵和标签值的线性关系,对于这个模型来说,未知数就是w,所以线性回归原理的核心就是找出模型的参数向量w,我们希望找到一组参数w使模型最好的拟合数据,我们使用’‘损失函数’'这个评估指标,来衡量系数为的模型拟合训练集时产生的信息损失的大小,并以此衡量参数的优劣。
衡量参数的优劣的评估指标,用来求解最优参数的工具
损失函数小,模型在训练集上表现优异,拟合充分,参数优秀,
损失函数大,模型在训练集上表现差劲,拟合不足,参数糟糕,
我们追求,能够让损失函数最小化的参数组合。
多元线性回归的损失函数:
∑ i = 1 m ( y i − y ^ ) 2 = ∑ i = 1 m ( y i − X i w ) 2 \sum_{i=1}^{m}(y_i-\hat{y})^2=\sum_{i=1}^{m}(y_i-X_iw)^2 i=1∑m(yi−y^)2=i=1∑m(yi−Xiw)2
其中 y i y_i yi是样本对应的真实标签, y ^ \hat{y} y^也就是 X i w X_iw Xiw样本在一组参数 w w w下的预测标签, m m m代表样本的总量。
上面说我们说损失函数越小,拟合越好,所以我们损失函数转化成:
m i n ∑ i = 1 m ( y i − X i w ) 2 min\sum_{i=1}^{m}(y_i-X_iw)^2 mini=1∑m(yi−Xiw)2
用矩阵可以这么表示:
( y i − X i w ) 2 = ( y − X w ) T ( y − X w ) = ∥ y − X w ∥ 2 2 (y_i-X_iw)^2=(y-Xw)^T(y-Xw)=\left \| y-Xw \right \|_2 ^2 (yi−Xiw)2=(y−Xw)T(y−Xw)=∥y−Xw∥22
矩阵相乘是对应未知元素相乘相加,就会得到和上⾯面的式子一模一样的结果。而这样的矩阵可以转变成L2范式的形式。我们往往称呼这个损失函数为SSE(Sum of Squared Error,误差平方和)或者RSS(Residual Sum of Squares 残差平方和)。在我们的课件中我们称之为RSS,残差平方和。
2、最小二乘法求解多元线性回归的参数
现在问题转化成了求解RSS最小化的参数向量w,这种通过最小化真实值和预测值之间的RSS来求解参数的方法叫做最小二乘法。求解极值的第一步往往是求解一阶导数并让一阶导数等于0。现在残差平方和RSS上对参数向量求导。
接下来,我们就来对求导:
∂ R S S ∂ w = ∂ ∥ y − X w ∥ 2 2 ∂ w \frac{\partial RSS}{\partial w}=\frac{\partial \left \| y-Xw \right \|_2^2}{\partial w} ∂w∂RSS=∂w∂∥y−Xw∥22
= ∂ ( y − X w ) T ( y − X w ) ∂ w =\frac{\partial (y-Xw)^T(y-Xw)}{\partial w} =∂w∂(y−Xw)T(y−Xw)
∵ ( A − B ) T = A T − B T a n d ( A B ) T = B T ∗ A T \because (A-B)^T=A^T-B^T and (AB)^T=B^T*A^T ∵(A−B)T=AT−BTand(AB)T=BT∗AT