最小二乘法求解多元线性回归问题

本文章记录通过矩阵最小二乘法,求解多元方程组的线性回归。

最小二乘法求解二元线性回归问题

在二元线性回归的中,未知参数有 C、D,及方程式 y = C + D x y = C + Dx y=C+Dx 中的参数,可得到如下矩阵表达式:

A [ C D ] = A b = Y A\left[ \begin{matrix} C \\ D \end{matrix} \right]=Ab=Y A[CD]=Ab=Y

其中 b 为 [ C , D ] T [C, D]^T [C,D]T,Y 的维度为方程组个数 m,表达式为 [ y 1 , y 2 , . . . , y m ] T [y_1, y_2, ..., y_m]^T [y1,y2,...,ym]T

误差表达式
l = ∑ i = 1 n ( y i − y i ^ ) 2 = ∑ i = 1 n ( y i − b T X ) 2 (1) l = \sum_{i=1}^{n} (y_i - \hat{y_i})^2 = \sum_{i=1}^{n} (y_i -b^TX)^2\tag{1} l=i=1n(yiyi^)2=i=1n(yibTX)2(1)

其中
X = [ 1 x i ] X=\left[ \begin{matrix} 1 \\ x_i \end{matrix} \right] X=[1xi]

拟合出来的直线可能过原点,也可能不过原点。

我们先只考虑过原点的拟合,那么上式中的 C 为零,也就是 b = D 为单维。式(1)中的 X = x i x_i xi ,此时式(1)等同于如下:

l ( b ) = ∑ i = 1 n ( y i − y i ^ ) 2 = ∑ i = 1 n ( y i − b x i ) 2 (2) l(b) = \sum_{i=1}^{n} (y_i - \hat{y_i})^2 = \sum_{i=1}^{n} (y_i -bx_i)^2\tag{2} l(b)=i=1n(yiyi^)2=i=1n(yibxi)2(2)

上述示例比较简单,因为 x, y 均为一维的,也就是 y = C + Dx 中,x,y均为标量。那么 x 是否可以推广到多维呢?答案当然是可以的。

这里我们依然只考虑过原点的拟合,也就抹去了式子中的 C。

因为 C 可以认为是 二维X 中的一个维度始终是1,后续将 C 融合到 X 中一起考虑了

令:

y = b 1 x 1 + b 2 x 2 + . . . + b n x n = b T [ x 1 x 2 . . . x n ] = b T X y= b_1x_1 + b_2x_2 + ... + b_nx_n =b^T\left[ \begin{matrix} x_1 \\ x_2 \\ ... \\ x_n \end{matrix} \right]=b^TX y=b1x1+b2x2+...+bnxn=bT x1x2...xn =bTX

多个方程组时,

y 1 = b T X 1 y_1 = b^TX_1 y1=bTX1
y 2 = b T X 2 y_2 = b^TX_2 y2=bTX2

y m = b T X m y_m = b^TX_m ym=bTXm

这里的 b T X m 也可以写成 X m T b b^TX_m 也可以写成 X_m^Tb bTXm也可以写成XmTb

则有:

Y = [ y 1 y 2 . . . y m ] , b = [ b 1 b 2 . . . b n ] , X = [ X 1 T X 2 T . . . X n T ] Y=\left[ \begin{matrix} y_1 \\ y_2 \\ ... \\ y_m \end{matrix} \right], b = \left[ \begin{matrix} b_1 \\ b_2 \\ ... \\ b_n \end{matrix} \right], X = \left[ \begin{matrix} X_1^T \\ X_2^T \\ ... \\ X_n^T \\ \end{matrix} \right] Y= y1y2...ym ,b= b1b2...bn ,X= X1TX2T...XnT

其中

X 1 T = [ x 11 , x 12 , . . . , x 1 n ] X_1^T = [x_{11}, x_{12}, ..., x_{1n}] X1T=[x11,x12,...,x1n]

可以理解 x 11 , x 12 , x 1 n x_{11}, x_{12}, x_{1n} x11,x12,x1n 分别对应不同的特征

进一步可得到损失函数的表达式为:

l ( b ) = ∑ i = 1 n ( y i − X i T b ) 2 (3) l(b) = \sum_{i=1}^{n} (y_i -X_i^Tb)^2\tag{3} l(b)=i=1n(yiXiTb)2(3)

整个求解过程即为对式子 (3)求最小化

则有:

l ( b ) = ( Y − X b ) T ( Y − X b ) l(b) = (Y - Xb)^T(Y - Xb) l(b)=(YXb)T(YXb)

化简,
l ( b ) = ( Y T − b T X T ) ( Y − X b ) = Y T Y − Y T X b − b T X T Y + b T X T X b = Y T Y − 2 Y T X b + b T X T X b (4) \begin{aligned} l(b)&=(Y^T - b^TX^T)(Y - Xb) \\ &=Y^TY - Y^TXb - b^TX^TY + b^TX^TXb \\ &=Y^TY - 2Y^TXb + b^TX^TXb \end{aligned}\tag4 l(b)=(YTbTXT)(YXb)=YTYYTXbbTXTY+bTXTXb=YTY2YTXb+bTXTXb(4)

说明:式(4)中,由于维度 Y T Y^T YT 为 1*m,X 为 m*n ,b 为 n*1
可知 Y T X b Y^TXb YTXb 的维度为 1*1 即标量。同理 b T X T Y b^TX^TY bTXTY 也是标量,且为前者转置,因此可以做合并做 2倍表示。

对式(4)中的各项对 b 进行求导,

d ( Y T Y ) d ( b ) = [ 0 0 . . . 0 m ] \frac{d(Y^TY)}{d(b)} = \left[ \begin{matrix} 0 \\ 0 \\ ... \\ 0_m \end{matrix} \right] d(b)d(YTY)= 00...0m

2 d ( Y T X b ) d ( b ) = 2 ( Y T X ) T = 2 X T Y \frac{2d(Y^TXb)}{d(b)} = 2(Y^TX)^T = 2X^TY d(b)2d(YTXb)=2(YTX)T=2XTY

补充:标量对向量求导,有公式 d ( A T X ) d ( X ) = d ( X T A ) d ( X ) = A \frac{d(A^TX)}{d(X)} = \frac{d(X^TA)}{d(X)} = A d(X)d(ATX)=d(X)d(XTA)=A

d ( b T X T X b ) d ( b ) = ( X T X + X T X ) b = 2 X T X b \frac{d(b^TX^TXb)}{d(b)} = (X^TX + X^TX)b = 2X^TXb d(b)d(bTXTXb)=(XTX+XTX)b=2XTXb

补充:向量求导公式 d ( X T A X ) d ( X ) = ( A + A T ) X \frac{d(X^TAX)}{d(X)} = (A + A^T) X d(X)d(XTAX)=(A+AT)X

将上面计算出来的分量求导进行汇总,可以得到损失函数的导数如下:

d l ( b ) d b = − 2 X T Y + 2 X T X b (5) \frac{dl(b)}{db} = -2X^TY + 2X^TXb \tag5 dbdl(b)=2XTY+2XTXb(5)

令式(5)等于零,以求得最优参数 b

− 2 X T Y + 2 X T X b = 0 -2X^TY + 2X^TXb = 0 2XTY+2XTXb=0

可推出
X T Y = X T X b X^TY = X^TXb XTY=XTXb

b ^ = ( X T X ) − 1 X T Y \hat{b} = (X^TX)^{-1}X^TY b^=(XTX)1XTY

以上即为最小二乘法对多元函数的回归过程。

至此结束~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值