线性回归学习笔记

线性回归算法

线性回归算法的优缺点:

优点:
思想简单,容易实现
是许多强大的非线性模型的基础
结果具有很好的可解释性,相应的系数可以理解为权重
蕴含机器学习中的很多重要思想

公式推导

预测 y ^ ( i ) = X ( i ) w + b \hat y^{(i)} = X^{(i)}w+b y^(i)=X(i)w+b
目标是使 y y y y ^ \hat y y^尽量接近,即使 ∑ i = 1 m ( y ( i ) − y ^ ( i ) ) \sum\limits_{i=1}^m(y^{(i)}-\hat y^{(i)}) i=1m(y(i)y^(i))尽可能小。
但是使用该误差的简单累加,使得正差值和负差值相互抵消,所以要采用平方误差。

故,目标为平方误差: ∑ i = 1 m ( y ( i ) − y ^ ( i ) ) 2 \sum\limits_{i=1}^m(y^{(i)}-\hat y^{(i)})^2 i=1m(y(i)y^(i))2尽可能小
确定了线性回归的损失函数或者称之为效用函数,通过最优化损失函数或者效用函数,得到机器学习模型。

min ⁡ ∑ i = 1 m ( y ( i ) − y ^ ( i ) ) 2 = min ⁡ w , b ∑ i = 1 m ( y ( i ) − X ( i ) w − b ) 2 \min \sum\limits_{i=1}^m(y^{(i)}-\hat y^{(i)})^2\\ =\min\limits_{w,b} \sum\limits_{i=1}^m(y^{(i)}-X^{(i)}w-b)^2 mini=1m(y(i)y^(i))2=w,bmini=1m(y(i)X(i)wb)2
求关于 w , b w,b w,b的偏导数
∂ l o s s f u n c t i o n ∂ w = ∑ i = 1 m 2 ( y ( i ) − w X ( i ) − b ) X ( i ) \frac{\partial loss function}{\partial w}=\sum\limits_{i=1}^m2(y^{(i)}-wX^{(i)}-b)X^{(i)} wlossfunction=i=1m2(y(i)wX(i)b)X(i)
∂ l o s s f u n c t i o n ∂ b = ∑ i = 1 m − 2 ( y ( i ) − w X ( i ) − b ) \frac{\partial loss function}{\partial b}=\sum\limits_{i=1}^m-2(y^{(i)}-wX^{(i)}-b) blossfunction=i=1m2(y(i)wX(i)b)
令偏导数为0
求得关于w和b的表达式
b = ∑ i = 1 m y ( i ) − ∑ i = 1 m w X ( i ) m = y ˉ − w x ˉ b=\frac{\sum\limits_{i=1}^my^{(i)}-\sum\limits_{i=1}^mwX^{(i)}}{m}=\bar y - w\bar x b=mi=1my(i)i=1mwX(i)=yˉwxˉ
w = ∑ i = 1 m y ( i ) X ( i ) − y ˉ X ( i ) ∑ i = 1 m X ( i ) X ( i ) − X ˉ X ( i ) w=\frac{\sum\limits_{i=1}^m y^{(i)}X^{(i)}-\bar yX^{(i)}}{\sum\limits_{i=1}^mX^{(i)}X^{(i)}-\bar XX^{(i)}} w=i=1mX(i)X(i)XˉX(i)i=1my(i)X(i)yˉX(i)
因为 ∑ i = 1 m y ˉ X ( i ) = y ˉ ∑ i = 1 m X ( i ) = m y ˉ x ˉ = x ˉ ∑ i = 1 m y ( i ) = ∑ i = 1 m X ( i ) y ( i ) \sum\limits_{i=1}^m\bar yX^{(i)}=\bar y \sum\limits_{i=1}^mX^{(i)}=m\bar y\bar x = \bar x\sum\limits_{i=1}^my^{(i)}=\sum\limits_{i=1}^mX^{(i)}y^{(i)} i=1myˉX(i)=yˉi=1mX(i)=myˉxˉ=xˉi=1my(i)=i=1mX(i)y(i)
所以上式可以化简为
w = ∑ i = 1 m ( y ( i ) − y ˉ ) ( X ( i ) − X ˉ ) ∑ i = 1 m ( X ( i ) − X ˉ ) 2 w=\frac{\sum\limits_{i=1}^m \big(y^{(i)}-\bar y\big) \big(X^{(i)} - \bar X\big)}{\sum\limits_{i=1}^m (X^{(i)}-\bar X)^2} w=i=1m(X(i)Xˉ)2i=1m(y(i)yˉ)(X(i)Xˉ)

采用向量化的方式进行推导

此时不再单独设置b这个变量了,而是在X数据集的基础上,添加一列全是1的向量,此时与X做点乘的w中,w[0]即为截距
y ^ = X w \hat y=Xw y^=Xw
min ⁡ w ( y − y ^ ) 2 = min ⁡ w ( y − X w ) T ( y − X w ) = min ⁡ w y T y − y T X w − w T X T y − w T X T X w \min\limits_{w}(y-\hat y)^2\\ =\min\limits_{w}(y-Xw)^T(y-Xw)\\ =\min\limits_{w}y^Ty-y^TXw-w^TX^Ty-w^TX^TXw wmin(yy^)2=wmin(yXw)T(yXw)=wminyTyyTXwwTXTywTXTXw
求解w,即对其求导,并令其为0

其中求导时,用到两个非常重要的公式
1.对于向量x求导
∇ x w T x = w \nabla_x w^Tx=w xwTx=w
证明:
w T x = ( w 1 w 2 . . . w n ) ⋅ ( x 1 x 2 . . . x n ) = ∑ i = 1 n w i x i w^Tx=\begin{pmatrix}w_1&w_2&...&w_n\end{pmatrix}\cdot\begin{pmatrix}x_1\\x_2\\...\\x_n\end{pmatrix}\\ =\sum\limits_{i=1}^nw_ix_i wTx=(w1w2...wn)x1x2...xn=i=1nwixi
所以对 x i x_i xi求导,对应的导数为 w i w_i wi
∇ x w T x = w \nabla_x w^Tx=w xwTx=w

2.对向量x求导
∇ x x T A x = ( A + A T ) x \nabla_x x^TAx=(A+A^T)x xxTAx=(A+AT)x
其中x为向量,A为矩阵

证明:
对于二次型 x T A x x^TAx xTAx
x T A x = ( x 1 x 2 . . . x n ) ( a 11 a 12 . . . a 1 n a 21 a 22 . . . a 2 n . . a n 1 a n 2 . . . a n n ) ( x 1 x 2 . . . x n ) = ( x 1 x 2 . . . x n ) ( a 11 x 1 + a 12 x 2 + . . . + a 1 n x n a 21 x 1 + a 22 x 2 + . . . + a 2 n x n . . . a n 1 x 1 + a n 2 x 2 + . . . + a n n x n ) = a 11 x 1 x 1 + a 12 x 1 x 2 + . . . + a 1 n x 1 x n + a 21 x 2 x 1 + a 22 x 2 x 2 + . . . + a 2 n x 2 x n + . . . + a n 1 x n x 1 + a n 2 x n x 2 + . . . + a n n x n x n = ∑ i = 1 n ∑ j = 1 n a i j x i x j x^TAx=\begin{pmatrix}x_1&x_2&...&x_n\end{pmatrix}\begin{pmatrix} a_{11}&a_{12}&...&a_{1n}\\a_{21}&a_{22}&...&a_{2n}\\.\\.\\a_{n1}&a_{n2}&...&a_{nn}\end{pmatrix}\begin{pmatrix}x_1\\x_2\\...\\\\x_n\end{pmatrix}\\ =\begin{pmatrix}x_1&x_2&...&x_n\end{pmatrix}\begin{pmatrix}a_{11}x_1+a_{12}x_2+...+a_{1n}x_{n}\\a_{21}x_1+a_{22}x_2+...+a_{2n}x_n\\...\\a_{n1}x_1+a_{n2}x_2+...+a_{nn}x_n\end{pmatrix}\\ =a_{11}x_1x_1+a_{12}x_1x_2+...+a_{1n}x_1x_n+a_{21}x_2x_1+a_{22}x_2x_2+...+a_{2n}x_2x_n +...+a_{n1}x_nx_1+a_{n2}x_nx_2+...+a_{nn}x_nx_n \\ =\sum\limits_{i=1}^n\sum\limits_{j=1}^na_{ij}x_ix_j xTAx=(x1x2...xn)a11a21..an1a12a22an2.........a1na2nannx1x2...xn=(x1x2...xn)a11x1+a12x2+...+a1nxna21x1+a22x2+...+a2nxn...an1x1+an2x2+...+annxn=a11x1x1+a12x1x2+...+a1nx1xn+a21x2x1+a22x2x2+...+a2nx2xn+...+an1xnx1+an2xnx2+...+annxnxn=i=1nj=1naijxixj
其中,若只对 x 1 x_1 x1求导则整理上式
x T A x = a 11 x 1 x 1 + ∑ i = 2 n a i 1 x i x 1 + ∑ j = 2 n a 1 j x j x 1 + c x^TAx=a_{11}x_1x_1+\sum\limits_{i=2}^na_{i1}x_ix_1+\sum\limits_{j=2}^na_{1j}x_{j}x_1+c xTAx=a11x1x1+i=2nai1xix1+j=2na1jxjx1+c
x 1 x_1 x1求导,则上式为
2 a 11 x 1 + ∑ i = 2 n a i 1 x i + ∑ j = 2 n a 1 j x j = ∑ j = 1 n a 1 j x j + ∑ j = 1 n a 1 j x j = A [ 1 , : ] ⋅ x + A T [ 1 , : ] ⋅ x 2a_{11}x_1+\sum\limits_{i=2}^na_{i1}x_i+\sum\limits_{j=2}^na_{1j}x_{j}\\ =\sum\limits_{j=1}^na_{1j}x_{j}+\sum\limits_{j=1}^na_{1j}x_{j}\\ =A[1,:]\cdot x +A^T[1,:]\cdot x 2a11x1+i=2nai1xi+j=2na1jxj=j=1na1jxj+j=1na1jxj=A[1,:]x+AT[1,:]x
由此可知,对x求导后,导数为
( A + A T ) ⋅ x (A+A^T)\cdot x (A+AT)x

故线性回归中
w = ( X T X ) − 1 X T y w = (X^TX)^{-1}X^Ty w=(XTX)1XTy

局部加权线性回归

在这里插入图片描述
看一些博文上的讲解,首先这种算法是一种非参数学习算法,也就是类似KNN算法,需要保留训练集。
对于一个新的待预测点,对其进行预测时,使用的训练集是 基于这个待预测点加过权重的训练集,这个权重计算函数起到的作用就是使得靠近待测样本的点的权重大。

常用的权重的计算函数为高斯核
w ( i ) = e x p ( ( x i − x p r e d i c t ) 2 − 2 γ 2 ) w(i) = exp\Big(\frac{(x^{i}-x_{predict})^2}{-2\gamma^2}\Big) w(i)=exp(2γ2(xixpredict)2)

这个函数非常类似高斯分布,
越靠近X_predict,则权值越大

同时k决定了权值的变化速率,k越小,变化速率越大

由此就定义了只含对角元素的权重矩阵W

所以我们的损失函数从原本的
∑ i = 1 m ( y ( i ) − w X ( i ) ) 2 \sum\limits_{i=1}^m(y^{(i)}-wX^{(i)})^2 i=1m(y(i)wX(i))2
转化为
∑ i = 1 m w ( i ) ( y ( i ) − w X ( i ) ) 2 \sum\limits_{i=1}^mw^{(i)}(y^{(i)}-wX^{(i)})^2 i=1mw(i)(y(i)wX(i))2前面的w为权重函数
转化为向量形式
( y − X θ ) T W ( y − X θ ) (y-X\theta )^TW(y-X\theta ) (yXθ)TW(yXθ)其中W为权重矩阵
同样的求解方法
求出 θ = ( X T W X ) − 1 X T W y \theta=(X^TWX)^{-1}X^TWy θ=(XTWX)1XTWy

对应的输出为 X θ X\theta Xθ

算法的流程为:
1.给出待预测的x
2.计算权重矩阵
3.求解theta
4.给出预测值

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值