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

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

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

在二元线性回归的中,未知参数有 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=1∑n(yi−yi^)2=i=1∑n(yi−bTX)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=1∑n(yi−yi^)2=i=1∑n(yi−bxi)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=1∑n(yi−XiTb)2(3)

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

则有:

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

化简,
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)=(YT−bTXT)(Y−Xb)=YTY−YTXb−bTXTY+bTXTXb=YTY−2YTXb+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

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

至此结束~

相关推荐
Blossom.11831 分钟前
使用Python和OpenCV实现图像识别与目标检测
人工智能·python·神经网络·opencv·安全·目标检测·机器学习
kuiini3 小时前
机器学习笔记【Week7】
机器学习·支持向量机
giszz4 小时前
【AI】智驾地图在不同自动驾驶等级中的作用演变
人工智能·机器学习·自动驾驶
二进制的Liao4 小时前
【数据分析】什么是鲁棒性?
运维·论文阅读·算法·数学建模·性能优化·线性回归·负载均衡
十三画者4 小时前
【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
python·机器学习·数据挖掘·数据分析·r语言·数据可视化
Work(沉淀版)8 小时前
DAY 40
人工智能·深度学习·机器学习
A林玖13 小时前
【机器学习】主成分分析 (PCA)
人工智能·机器学习
molunnnn13 小时前
DAY 15 复习日
机器学习
pen-ai14 小时前
【统计方法】基础分类器: logistic, knn, svm, lda
算法·机器学习·支持向量机
FrankHuang88814 小时前
使用高斯朴素贝叶斯算法对鸢尾花数据集进行分类
算法·机器学习·ai·分类