多元线性回归正规方程解
前面我们对一元线性回归正规方程解进行了推导,这里我们过渡到线性回归的一般形式,也就是多元线性回归。
多元线性回归,输入特征变成了多个,输出任然是一个,也就是观察多个输入特征对结果的影响。
在回忆一下线性回归公式:
$y = kx + b$
其中:
- $y$ 是预测值,即房屋价格
- $x$ 是特征,即房屋面积
- $k$ 是权重,也叫斜率,表示房屋面积对价格之间的关系
- $b$ 是偏置,也叫截距,表示价格在截距处的值
在一元线性回归中 x 是一个标量,只用来表示我们输入的一个特征。
在多元线性回归中 x 是一个向量,用来表示多个特征,同时每种特征的 k 也就是斜率是不同的,
在多元线性回归中我们用 w (权重) 来代替 k,w 也是一个向量,表示每种特征的权重。
于是多元线性回归的公式就变为这样:
$y = wx + b$
假设输入特征有 3 个,那么我们将公式展开就是:
$y = w_1x_1 + w_2x_2 + w_3x_3 + b$


误差
我们的思路与一元线性回归问题是一致的,找到最小误差也就找到了最优解。
误差 = 预测值 - 真实值
误差的绝对值越小,误差越小,预测值越接近真实值
样本 i 的预测值就是:
$y_i = w_1x_{i1} + w_2x_{i2} + w_3x_{i3} + b$
与一元线性回归一样接下来我们得出损失函数。
损失函数
单个样本的误差 = 预测值 - 真实值 = $y_i = w_1x_{i1} + w_2x_{i2} + w_3x_{i3} + b$ - 真实值
所有样本的误差和 = 单个样本的误差绝对值累加和
误差平均值 = 所有样本的误差和 / 样本个数
损失函数 L(w,b) 等于每个样本的误差和(越小越好)
假设有 m 个样本,每个样本有 n 个特征,那么损失函数的公式为:
$$
L(w,b) = \frac{1}{m}\sum_{i=1}^{m}(\sum_{n=1}^{n}w_nx_{in} + b - y_i)^2
$$
损失函数中包含两个求累加和的符号:
-
$\sum_{i=1}^{m}$ 是对所有样本的误差平方求和。
-
$\sum_{n=1}^{n}$ 是对单个样本的 n 个特征和权重的乘积求和。
这给我们的计算增加了难度,现在我们要换一种思维,将损失函数 L(w,b) 转换为矩阵运算。
再次回到我们最初的公式:
$y = wx + b$
假设输入特征有 3 个,那么我们将公式展开就是:
$y = w_1x_1 + w_2x_2 + w_3x_3 + b$
用向量表示 w :
$$\vec{w} = \begin{bmatrix} w1 \ w2 \ w3 \end{bmatrix}$$
用向量表示 x :
$$\vec{x} = \begin{bmatrix} x1 \ x2 \ x3 \end{bmatrix}$$
线性回归的公式可以表示为:
$$
y = \vec{w} \cdot \vec{x} + b
$$
就等同于:
$y = w_1x_1 + w_2x_2 + w_3x_3 + b$
因为还有 b 偏置的存在,所以可以将向量变形为:
$$\vec{w} = \begin{bmatrix} b \ w1 \ w2 \ w3 \end{bmatrix}$$
$$\vec{x} = \begin{bmatrix} 1 \ x1 \ x2 \ x3 \end{bmatrix}$$
就等同于:
$y = w_1x_1 + w_2x_2 + w_3x_3 + b×1$

把每一个样本的向量放在一个矩阵中:
$$X = \begin{bmatrix}
1 & x_{11} & x_{12} & x_{13} \
1 & x_{21} & x_{22} & x_{23} \
1 & x_{31} & x_{32} & x_{33} \
1 & x_{41} & x_{42} & x_{43}
\end{bmatrix}$$
每个样本的权重也用矩阵表示:
$$W = \begin{bmatrix}
b \
w_{1} \
w_{2} \
w_{3}
\end{bmatrix}$$

矩阵 X 乘以矩阵 W 的结果如下:
$$X \times W = \begin{bmatrix}
1 & x_{11} & x_{12} & x_{13} \
1 & x_{21} & x_{22} & x_{23} \
1 & x_{31} & x_{32} & x_{33} \
1 & x_{41} & x_{42} & x_{43}
\end{bmatrix} \times \begin{bmatrix}
b \
w_{1} \
w_{2} \
w_{3}
\end{bmatrix}$$
$$= \begin{bmatrix}
1 \cdot b + x_{11} \cdot w_1 + x_{12} \cdot w_2 + x_{13} \cdot w_3 \
1 \cdot b + x_{21} \cdot w_1 + x_{22} \cdot w_2 + x_{23} \cdot w_3 \
1 \cdot b + x_{31} \cdot w_1 + x_{32} \cdot w_2 + x_{33} \cdot w_3 \
1 \cdot b + x_{41} \cdot w_1 + x_{42} \cdot w_2 + x_{43} \cdot w_3
\end{bmatrix}$$
$$= \begin{bmatrix}
b + x_{11}w_1 + x_{12}w_2 + x_{13}w_3 \
b + x_{21}w_1 + x_{22}w_2 + x_{23}w_3 \
b + x_{31}w_1 + x_{32}w_2 + x_{33}w_3 \
b + x_{41}w_1 + x_{42}w_2 + x_{43}w_3
\end{bmatrix}$$
这个结果矩阵中的每一行都代表了一个样本的预测值 y_i。

于是损失函数就变形为:
$$
\frac{1}{m}(XW -y)^2
$$
可以看到损失函数恒为正,也就是一个下凸函数,于是问题就变成了求该函数的极小值,也就是导数为 0 的点。
$XW - y$ 的结果是一个向量,也就是向量2范数的平方:
$$|XW - y|_2^2$$
2范数的平方又等于向量的转置乘以向量:
$$
|XW - y|_2^2 = (XW - y)^T(XW - y)
$$
矩阵求导公式
在进行求导之前,我们需要了解一些常见的矩阵求导公式。这些公式在推导正规方程解时会用到:
基本矩阵求导规则
-
标量对向量的求导:
-
如果 $f(x) = a^Tx$,其中 $a$ 和 $x$ 都是向量,则:
$$\frac{\partial f}{\partial x} = a$$ -
如果 $f(x) = x^Ta$,则:
$$\frac{\partial f}{\partial x} = a$$
-
-
二次型对向量的求导:
-
如果 $f(x) = x^TAx$,其中 $A$ 是对称矩阵,则:
$$\frac{\partial f}{\partial x} = 2Ax$$ -
如果 $f(x) = x^TAx$,其中 $A$ 不是对称矩阵,则:
$$\frac{\partial f}{\partial x} = (A + A^T)x$$
-
-
向量对向量的求导:
- 如果 $y = Ax$,其中 $A$ 是矩阵,$x$ 是向量,则:
$$\frac{\partial y}{\partial x} = A^T$$
- 如果 $y = Ax$,其中 $A$ 是矩阵,$x$ 是向量,则:
-
标量对矩阵的求导:
-
如果 $f(W) = a^TWb$,其中 $a$ 和 $b$ 是向量,$W$ 是矩阵,则:
$$\frac{\partial f}{\partial W} = ab^T$$ -
如果 $f(W) = \text{tr}(AW)$,其中 $\text{tr}$ 表示矩阵的迹,则:
$$\frac{\partial f}{\partial W} = A^T$$
-
-
向量范数的求导:
-
如果 $f(x) = |x|_2^2 = x^Tx$,则:
$$\frac{\partial f}{\partial x} = 2x$$ -
如果 $f(x) = |Ax - b|_2^2 = (Ax - b)^T(Ax - b)$,则:
$$\frac{\partial f}{\partial x} = 2A^T(Ax - b)$$
-
-
转置和逆的求导:
- $\frac{\partial}{\partial x}(A^T) = \left(\frac{\partial A}{\partial x}\right)^T$
- 如果 $A$ 可逆,则 $\frac{\partial}{\partial x}(A^{-1}) = -A^{-1}\frac{\partial A}{\partial x}A^{-1}$
复合函数的求导(链式法则)
对于复合函数 $f(g(x))$,有:
$$\frac{\partial f}{\partial x} = \frac{\partial f}{\partial g} \cdot \frac{\partial g}{\partial x}$$
在线性回归中的应用
对于我们的损失函数 $(XW - y)^T(XW - y)$,让我们详细展开:
步骤1:展开表达式
$$(XW - y)^T(XW - y) = (XW)^T(XW) - (XW)^Ty - y^T(XW) + y^Ty$$
步骤2:利用转置的性质 $(AB)^T = B^TA^T$ 和 $(A^T)^T = A$
$$= W^TX^TXW - W^TX^Ty - y^TXW + y^Ty$$
步骤3:注意到 $y^TXW$ 是标量,所以 $y^TXW = (y^TXW)^T = W^TX^Ty$
$$= W^TX^TXW - 2W^TX^Ty + y^Ty$$
步骤4:对 $W$ 求导
根据矩阵求导公式:
- $\frac{\partial}{\partial W}(W^TX^TXW) = 2X^TXW$(二次型求导,$X^TX$ 是对称矩阵)
- $\frac{\partial}{\partial W}(-2W^TX^Ty) = -2X^Ty$(线性项求导,根据规则1)
- $\frac{\partial}{\partial W}(y^Ty) = 0$(常数项对 $W$ 的导数为0)
因此:
$$\frac{\partial}{\partial W}[(XW - y)^T(XW - y)] = 2X^TXW - 2X^Ty$$
现在就是要对 $(XW - y)^T(XW - y)$ 求导:
$$\frac{\partial}{\partial W}[(XW - y)^T(XW - y)] = 2X^T(XW - y)$$
$$2X^T(XW - y) = 0$$
$$2X^TXW - 2X^Ty = 0$$
$$X^TXW = X^Ty$$
两边乘以 $X^TX$ 的逆 $(X^TX)^{-1}$ 消掉 $X^TX$ (矩阵乘以矩阵的逆等于单位矩阵 I 单位矩阵与向量相乘还是原向量) 得到最后 W 权重向量的结果:
$$W = (X^TX)^{-1}X^Ty$$
但是不是所有的矩阵都有逆,只有是方阵的矩阵才可能有逆,所以这里要判断矩阵是否可逆。
也就是说如果 $X^TX$ 不存在逆,则无法求解 W 权重向量的结果。
高维特征可视化
当特征数量超过2个时,我们无法在单个3D图中完全展示所有特征。但我们可以使用以下方法来可视化:
- 多个2D子图:每个特征单独与目标值的关系
- 平行坐标图:同时显示所有特征和目标值
- 特征权重可视化:展示每个特征的重要性
- 残差分析图:评估模型拟合效果
- 降维可视化:使用PCA等方法将高维数据投影到低维空间
特征数量: 5
真实权重: [ 0.5 10. -2. 3. -1.5]
预测权重: [ 0.52710641 10.13551103 -2.05323524 3.26791203 -1.53615727]
真实偏置: 20.00, 预测偏置: 17.27
R² 分数: 0.9920
=== 方法1:多个2D子图(每个特征单独展示)===

=== 方法2:平行坐标图(同时显示所有特征)===

=== 方法3:特征权重可视化(特征重要性)===

=== 方法4:残差分析图 ===

=== 方法5:PCA降维可视化(将高维数据投影到2D/3D)===
