【Machine Learning】Ch3.2 线性回归

本文深入解析线性回归原理,探讨如何通过最小二乘法求解参数,实现模型预测。覆盖一元及多元线性回归,详细推导参数估计过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

3.2 线性回归

线性回归的目的是,给定数据集D={(x1,y1),(x2,y2)...(xm,ym)}​D=\{(x_1,y_1),(x_2,y_2)...(x_m,y_m)\}​D={(x1,y1),(x2,y2)...(xm,ym)},其中xi=(xi1;xi2;...;xid)​x_i=(x_{i1};x_{i2};...;x_{id})​xi=(xi1;xi2;...;xid)yi∈R​y_i \in R​yiR。线性回归试图学得一个线性模型f(xi)=wxi+b​f(x_i)=wx_i+b​f(xi)=wxi+b使得f(xi)≃yi​f(x_i)\simeq y_i​f(xi)yi

书中所说的序的关系,是一种可以进行量化的关系。例如将表示程度的名词,用[0,1]​[0,1]​[0,1]区间的实数进行量化。有些是不能量化的,如种类。书中提到的瓜的种类就是一个例子。若有几类瓜,则转换为几维向量。可以将向量的每一维看做一个布尔变量,若为1表示隶属于这种瓜。

为了求解参数w,b​w,b​w,b,采用均方误差作为性能度量。显然均方误差越小越好,线性回归任务可以表示为

(w∗,b∗)=arg min(w,b)∑i=1m(f(xi)−yi))2=arg min(w,b)∑i=1m(yi−wxi−b)2​(w^*,b^*)=arg\ min_{(w,b)}\sum_{i=1}^{m}(f(x_i)-y_i))^2=arg\ min_{(w,b)}\sum_{i=1}^{m}(y_i-wx_i-b)^2​(w,b)=arg min(w,b)i=1m(f(xi)yi))2=arg min(w,b)i=1m(yiwxib)2

arg minarg\ minarg min表示当minminmin后面表达式中取最小值的时候,参数的取值,上式中(w∗,b∗)=arg min(w,b)...(w^*,b^*)=arg\ min_{(w,b)...}(w,b)=arg min(w,b)...就是表示当后面的表达式取最小值的时候,参数(变量)w,bw,bw,b的值作为解w∗,b∗w^*,b^*w,b

均方误差对应了欧式距离,基于均方误差最小化来进行模型求解的方法也叫作最小二乘法。如果输入xix_ixi只有一维,也就是一元线性回归,那么和高中的最小二乘法拟合直线方程并没有什么区别。线性回归任务,也是找到一条直线,使得样本到直线上的欧式距离之和最小。

此处假设xix_ixi只有一维,即一元线性回归。
E(w,b)=∑i=1m(yi−wxi−b)2E_{(w,b)}=\sum_{i=1}^{m}(y_i-wx_i-b)^2E(w,b)=i=1m(yiwxib)2,求解w,bw,bw,b使得E(w,b)E_{(w,b)}E(w,b)最小化的过程,称为线性回归模型的最小二乘参数估计。将E(w,b)E_{(w,b)}E(w,b)分别对w,bw,bw,b求导。

∂E(w,b)∂w=2(w∑i=1mxi2−∑i=1m(yi−b)xi)\frac{\partial E_{(w,b)}}{\partial w}=2(w\sum_{i=1}^mx_i^2-\sum_{i=1}^m(y_i-b)x_i)wE(w,b)=2(wi=1mxi2i=1m(yib)xi)

∂E(w,b)∂b=2(mb−∑i=1m(yi−wxi))\frac{\partial E_{(w,b)}}{\partial b}=2(mb-\sum_{i=1}^m(y_i-wx_i))bE(w,b)=2(mbi=1m(yiwxi))

由于E(w,b)E_{(w,b)}E(w,b)是凸函数,所以导数为0即可得到最优解的闭式。

w=∑i=1myi(xi−xˉ)∑i=1mxi2−1m(∑i=1mxi)2w=\frac{\sum_{i=1}^my_i(x_i-\bar{x})}{\sum_{i=1}^mx_i^2-\frac{1}{m}(\sum_{i=1}^mx_i)^2}w=i=1mxi2m1(i=1mxi)2i=1myi(xixˉ)

b=1m∑i=1m(yi−wxi)b=\frac{1}{m}\sum_{i=1}^m(y_i-wx_i)b=m1i=1m(yiwxi)

更一般的情况,样本由多个属性组成,学习目标为f(xi)=wTxi+bf(x_i)=w^Tx_i+bf(xi)=wTxi+b使得f(xi)≃yif(x_i)\simeq y_if(xi)yi。称为多元线性回归。

w​w​w是每个属性前面的权值(d×1​d×1​d×1的列向量),考虑到偏置项(常数项)b​b​b,将b​b​b也吸入进向量形式,即w^=(w;b)​\hat{w}=(w;b)​w^=(w;b)((d+1)×1​(d+1)×1​(d+1)×1的列向量)。而X​X​X是一个矩阵(m×d​m×d​m×d),每一行是一条数据记录,列对应一个属性。引入偏置项后,需要在最右侧增加一列1,变成m×(d+1)​m×(d+1)​m×(d+1)的矩阵。这样可以求得

w^∗=arg minw^(y−Xw^)T(y−Xw^)​\hat{w}^*=arg\ min_{\hat{w}}(y-X\hat{w})^T(y-X\hat{w})​w^=arg minw^(yXw^)T(yXw^)

Ew^=(y−Xw^)T(y−Xw^)E_{\hat{w}}=(y-X\hat{w})^T(y-X\hat{w})Ew^=(yXw^)T(yXw^)。类似的,导数为0的时候可以求出闭解形式,首先要解决的是矩阵求导的问题,这里用两种方式求解Ew^E_{\hat{w}}Ew^的导数。下面会涉及到一些矩阵论的内容,使用到的式也会一并给出。

方法一

用到的公式:dABdB=AT,dATBdA=B,XTAXdX=2AX\frac{dAB}{dB}=A^T,\frac{dA^TB}{dA}=B,\frac{X^TAX}{dX}=2AXdBdAB=AT,dAdATB=B,dXXTAX=2AX

Ew^=(y−Xw^)T(y−Xw^)=(w^TXTXw^−w^TXTY−YTXx^−YTY)E_{\hat{w}} \\ =(y-X\hat{w})^T(y-X\hat{w}) \\=(\hat{w}^TX^TX\hat{w}-\hat{w}^TX^TY-Y^TX\hat{x}-Y^TY)Ew^=(yXw^)T(yXw^)=(w^TXTXw^w^TXTYYTXx^YTY)

dEw^dw^=d(w^TXTXw^−w^TXTY−YTXx^−YTY)dw^=dw^TXTXw^dw^−dw^TXTYdw^−dYTXx^dw^−dYTYdw^​\frac{dE_{\hat{w}}}{d\hat{w}} = \frac{d(\hat{w}^TX^TX\hat{w}-\hat{w}^TX^TY-Y^TX\hat{x}-Y^TY)}{d\hat{w}} = \frac{d\hat{w}^TX^TX\hat{w}}{d\hat{w}} - \frac{d\hat{w}^TX^TY}{d\hat{w}} - \frac{dY^TX\hat{x}}{d\hat{w}} - \frac{dY^TY}{d\hat{w}} ​dw^dEw^=dw^d(w^TXTXw^w^TXTYYTXx^YTY)=dw^dw^TXTXw^dw^dw^TXTYdw^dYTXx^dw^dYTY

根据公式dw^TXTXw^dw^=2XTXw^,dw^TXTYdw^=XTY,dYTXx^dw^=XTY,dYTYdw^=0​\frac{d\hat{w}^TX^TX\hat{w}}{d\hat{w}} = 2X^TX\hat{w}, \frac{d\hat{w}^TX^TY}{d\hat{w}} = X^TY, \frac{dY^TX\hat{x}}{d\hat{w}} = X^TY, \frac{dY^TY}{d\hat{w}} = 0​dw^dw^TXTXw^=2XTXw^,dw^dw^TXTY=XTY,dw^dYTXx^=XTY,dw^dYTY=0

那么dEw^dw^=2XTXw^−2XTY=2XT(Xw^−Y)\frac{dE_{\hat{w}}}{d\hat{w}} = 2X^TX\hat{w}-2X^TY=2X^T(X\hat{w}-Y)dw^dEw^=2XTXw^2XTY=2XT(Xw^Y)

方法二

用到的公式:df=∑i=1n∂f∂xidxi=∂fT∂xdxdf=\sum_{i=1}^{n}\frac{\partial f}{\partial x_i}dx_i = \frac{\partial f^T}{\partial x}dxdf=i=1nxifdxi=xfTdx

d[(y−Xw^)T(y−Xw^)]=d(y−Xw^)T(y−Xw^)+(y−Xw^)Td(y−Xw^)=∂(y−Xw^)∂w^(y−Xw^)dw^+(y−Xw^)T∂(y−Xw^)Tw^dw^=(XTXw^−XTY)dw+(w^TXTX−YTX)dw=(XTXw^−XTY+w^TXTX−YTX)dw=[(XTXw^−XTY)+(XTXw^−XTY)]dw=2XT(Xw^−Y)dw​d[(y-X\hat{w})^T(y-X\hat{w})] \\ = d(y-X\hat{w})^T(y-X\hat{w}) + (y-X\hat{w})^Td(y-X\hat{w}) \\ =\frac{\partial (y-X\hat{w})}{\partial \hat{w}}(y-X\hat{w})d\hat{w} + (y-X\hat{w})^T\frac{\partial (y-X\hat{w})^T}{\hat{w}}d\hat{w} \\=(X^TX\hat{w}-X^TY)dw + (\hat{w}^TX^TX-Y^TX)dw \\ = (X^TX\hat{w}-X^TY+\hat{w}^TX^TX-Y^TX)dw \\ = [(X^TX\hat{w} - X^TY) + (X^TX\hat{w}-X^TY)]dw \\ =2X^T(X\hat{w}-Y)dw​d[(yXw^)T(yXw^)]=d(yXw^)T(yXw^)+(yXw^)Td(yXw^)=w^(yXw^)(yXw^)dw^+(yXw^)Tw^(yXw^)Tdw^=(XTXw^XTY)dw+(w^TXTXYTX)dw=(XTXw^XTY+w^TXTXYTX)dw=[(XTXw^XTY)+(XTXw^XTY)]dw=2XT(Xw^Y)dw

2XT(Xw^−Y)=02X^T(X\hat{w}-Y)=02XT(Xw^Y)=0,即可得出w^∗=(XTX)−1XTy\hat{w}^*=(X^TX)^{-1}X^Tyw^=(XTX)1XTy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值