【多元线性回归的核心算法:深入解析最小二乘法原理】
多元线性回归的核心算法:深入解析最小二乘法原理
- 前言
- 一、定义
- 二、多元线性回归中最小二乘法参数计算原理
- 1.最小二乘法
- 2.最小二乘法矩阵运算
- 总结
前言
在一元线性回归模型中,我们针对仅含单一自变量 X X X 与因变量 Y Y Y 之间存在线性关系的数据进行建模,得到形式为 Y = β 0 + β 1 X + ϵ Y=\beta_{0}+\beta_{1} X+\epsilon Y=β0+β1X+ϵ 的回归方程,其中 β 0 \beta_{0} β0 是截距项, β 1 \beta_{1} β1 是斜率系数,而 ϵ \epsilon ϵ 代表误差项。然而,在诸多实际应用场景中,影响结果 Y Y Y 的因素往往不止一个。以房价 Y Y Y 为例,它可能受到房屋面积 X 1 X_{1} X1 ,所在城市 X 2 X_{2} X2 ,具体地区 X 3 X_{3} X3 ,周边配套设施 X 4 X_{4} X4 ,交通情况 X 5 X_{5} X5 等多个自变量(或特征)的共同影响。为了对这类复杂问题进行准确预估,我们需要综合考虑这些多个因素,即采用多元线性回归模型,其一般形式可表示为 Y = β 0 + β 1 X 1 + β 2 X 2 + β 3 X 3 + β 4 X 4 + β 5 X 5 + ϵ Y=\beta_{0}+\beta_{1} X_{1}+\beta_{2} X_{2}+\beta_{3} X_{3}+\beta_{4} X_{4}+\beta_{5} X_{5}+\epsilon Y=β0+β1X1+β2X2+β3X3+β4X4+β5X5+ϵ ,其中每个 β i ( i = 0 , 1 , … , 5 ) \beta_{i}(i=0,1, \ldots, 5) βi(i=0,1,…,5) 代表对应自变量的系数,而 ϵ \epsilon ϵ 代表误差项。
一、定义
在机器学习和实际生活应用中,我们经常需要处理具有多个特征的样本。每个样本都包含
n
n
n 个特征属性,每个特征
x
n
x_{n}
xn 都对应一个权重值
w
n
w_{n}
wn 。与一元线性回归方程类似,我们可以写出多元线性回归方程的一般形式:
y
=
w
0
+
w
1
x
1
+
w
2
x
2
+
…
+
w
k
x
k
\begin{array}{l} y=w_{0}+w_{1} x_{1}+w_{2} x_{2}+\ldots+w_{k} x_{k} \end{array}
y=w0+w1x1+w2x2+…+wkxk
同样地,为了表示线性模型中无法解释的部分,我们在方程后面加上一个误差项 ε \varepsilon ε 。然而,在实际计算中,我们通常忽略这一部分,专注于求解权重向量 w w w 。
由于多元线性回归的变量更多,为了方便计算,我们可以将方程写成矩阵的形式。首先,我们定义权重向量
w
w
w 和特征向量
X
X
X 如下:
w
=
[
w
0
w
1
⋮
w
k
]
,
X
=
[
1
x
1
⋮
x
k
]
\begin{array}{l} w=\left[\begin{array}{c} w_{0} \\ w_{1} \\ \vdots \\ w_{k} \end{array}\right], \quad X=\left[\begin{array}{c} 1 \\ x_{1} \\ \vdots \\ x_{k} \end{array}\right] \end{array}
w=
w0w1⋮wk
,X=
1x1⋮xk
注意,这里我们令 x 0 = 1 x_{0}=1 x0=1 ,这样 w 0 x 0 w_{0} x_{0} w0x0 就对应了函数中的常数项,即 y y y 轴上的截距,类似于一元线性回归方程中的截距 b b b 。
现在,我们可以将多元线性回归方程写成矩阵形式的内积:
y
=
w
T
X
\begin{array}{l} y=w^{T} X \end{array}
y=wTX其中,
w
T
w^{T}
wT 是权重向量
w
w
w 的转置。为了求解权重向量w,我们通常会使用最小二乘法。最小二乘法的目标是找到一组权重值,使得预测值与实际观测值之间的差异(即残差)的平方和最小。这可以通过求解线性方程组或优化问题来实现。
在实际应用中,我们可能会使用各种数值方法和优化算法来求解最小二乘问题,例如梯度下降法、正规方程法等。这些方法的选择取决于数据的规模、特征的数量以及计算资源的可用性。总之,多元线性回归是一种强大的工具,可以帮助我们理解和预测具有多个特征的数据集。通过将方程写成矩阵形式,我们可以更方便地进行计算和优化。
二、多元线性回归中最小二乘法参数计算原理
1.最小二乘法
在多元线性回归中,我们的目标是找到一个线性模型,该模型能够最小化预测值与真实值之间的误差。为了量化这种误差,我们采用损失函数,它计算了每个样本点的预测值与实际值之间平方差的一半。
对于第
i
i
i 个样本点,其损失函数表示为:
l
(
x
(
i
)
)
=
1
2
[
h
(
x
(
i
)
)
−
y
(
i
)
]
2
\begin{array}{l} l\left(x^{(i)}\right)=\frac{1}{2}\left[h\left(x^{(i)}\right)-y^{(i)}\right]^{2} \end{array}
l(x(i))=21[h(x(i))−y(i)]2其中,
h
(
x
(
i
)
)
h\left(x^{(i)}\right)
h(x(i)) 是样本点的预测值,由多元线性回归模型
h
(
x
)
=
w
0
+
w
1
x
1
+
w
2
x
2
+
…
+
w
k
x
k
h(x)=w_{0}+w_{1} x_{1}+w_{2} x_{2}+\ldots+w_{k} x_{k}
h(x)=w0+w1x1+w2x2+…+wkxk 给出;
x
(
i
)
x^{(i)}
x(i) 和
y
(
i
)
y^{(i)}
y(i) 分别是第
i
i
i 个观察样本的自变量值和实际结果值。损失函数中的系数
1
2
\frac{1}{2}
21 是为了简化后续的计算,特别是求导时消去常数因子。
将所有样本点的损失函数相加,我们得到整体情况下的代价函数:
J
(
w
)
=
1
2
∑
i
=
1
n
[
h
(
x
(
i
)
)
−
y
(
i
)
]
2
\begin{array}{l} J(w)=\frac{1}{2} \sum_{i=1}^{n}\left[h\left(x^{(i)}\right)-y^{(i)}\right]^{2} \end{array}
J(w)=21∑i=1n[h(x(i))−y(i)]2这里,
w
=
(
w
0
,
w
1
,
w
2
,
…
,
w
k
)
w=\left(w_{0}, w_{1}, w_{2}, \ldots, w_{k}\right)
w=(w0,w1,w2,…,wk) 是模型的权重向量,我们的目标是找到一组权重值,使得代价函数
J
(
w
)
J(w)
J(w) 最小。为了找到这个最小值点,我们使用最小二乘法。具体来说,我们对代价函数 J(w) 关于每个权重
w
j
(
j
=
0
,
1
,
2
,
…
,
k
)
w_{j} ( j=0,1,2, \ldots, k)
wj(j=0,1,2,…,k) 求偏导数,并令这些偏导数等于
0
0
0 。即:
∂
J
(
w
)
∂
w
i
=
0
\begin{array}{l} \frac{\partial J(w)}{\partial w_{i}}=0 \end{array}
∂wi∂J(w)=0对于所有的
j
j
j ,上述方程构成了一个方程组,解这个方程组可以找到使代价函数
J
(
w
)
J(w)
J(w) 最小的权重向量
w
w
w 。这个过程就是最小二乘法在多元线性回归中的参数求解原理。具体过程如下:
J
(
w
)
=
1
2
∑
i
=
1
n
[
h
(
x
(
i
)
)
−
y
(
i
)
]
2
=
1
2
∑
i
=
1
n
(
w
0
+
w
1
x
1
(
i
)
+
w
2
x
2
(
i
)
+
…
+
w
k
x
k
(
i
)
−
y
(
i
)
)
2
{
∂
J
∂
w
0
=
∑
i
=
1
n
(
w
0
+
w
1
x
1
(
i
)
+
⋯
+
w
k
x
k
(
i
)
−
y
(
i
)
)
=
0
∂
J
∂
w
1
=
∑
i
=
1
n
x
1
(
i
)
(
w
0
+
w
1
x
1
(
i
)
+
⋯
+
w
k
x
k
(
i
)
−
y
(
i
)
)
=
0
⋮
∂
J
∂
w
k
=
∑
i
=
1
n
x
k
(
i
)
(
w
0
+
w
1
x
1
(
i
)
+
⋯
+
w
k
x
k
(
i
)
−
y
(
i
)
)
=
0
\begin{array}{l} \begin{array}{l} J(w)=\frac{1}{2} \sum_{i=1}^{n}\left[h\left(x^{(i)}\right)-y^{(i)}\right]^{2}=\frac{1}{2} \sum_{i=1}^{n}\left(w_{0}+w_{1} x_{1}^{(i)}+w_{2} x_{2}^{(i)}+\ldots+w_{k} x_{k}^{(i)}-y^{(i)}\right)^{2} \\ \left\{\begin{array}{c} \frac{\partial J}{\partial w_{0}}=\sum_{i=1}^{n}\left(w_{0}+w_{1} x_{1}^{(i)}+\cdots+w_{k} x_{k}^{(i)}-y^{(i)}\right)=0 \\ \frac{\partial J}{\partial w_{1}}=\sum_{i=1}^{n} x_{1}^{(i)}\left(w_{0}+w_{1} x_{1}^{(i)}+\cdots+w_{k} x_{k}^{(i)}-y^{(i)}\right)=0 \\ \vdots \\ \frac{\partial J}{\partial w_{k}}=\sum_{i=1}^{n} x_{k}^{(i)}\left(w_{0}+w_{1} x_{1}^{(i)}+\cdots+w_{k} x_{k}^{(i)}-y^{(i)}\right)=0 \end{array}\right. \end{array} \end{array}
J(w)=21∑i=1n[h(x(i))−y(i)]2=21∑i=1n(w0+w1x1(i)+w2x2(i)+…+wkxk(i)−y(i))2⎩
⎨
⎧∂w0∂J=∑i=1n(w0+w1x1(i)+⋯+wkxk(i)−y(i))=0∂w1∂J=∑i=1nx1(i)(w0+w1x1(i)+⋯+wkxk(i)−y(i))=0⋮∂wk∂J=∑i=1nxk(i)(w0+w1x1(i)+⋯+wkxk(i)−y(i))=0
整理后得到
{
w
0
n
+
w
1
∑
i
=
1
n
x
1
(
i
)
+
w
2
∑
i
=
1
n
x
2
(
i
)
+
⋯
+
w
k
∑
i
=
1
n
x
k
(
i
)
=
∑
i
=
1
n
y
(
i
)
w
0
∑
i
=
1
n
x
1
(
i
)
+
w
1
∑
i
=
1
n
(
x
1
(
i
)
)
2
+
w
2
∑
i
=
1
n
x
1
(
i
)
x
2
(
i
)
+
⋯
+
w
^
k
∑
i
=
1
n
x
1
(
i
)
x
k
(
i
)
=
∑
i
=
1
n
x
1
(
i
)
y
(
i
)
⋮
w
0
∑
i
=
1
n
x
k
(
i
)
+
w
1
∑
i
=
1
n
x
k
(
i
)
x
1
(
i
)
+
w
2
∑
i
=
1
n
x
k
(
i
)
x
2
(
i
)
+
⋯
+
w
k
∑
i
=
1
n
(
x
k
(
i
)
)
2
=
∑
i
=
1
n
x
k
(
i
)
y
(
i
)
\begin{array}{l} \left\{\begin{array}{l} w_{0} n+w_{1} \sum_{i=1}^{n} x_{1}^{(i)}+w_{2} \sum_{i=1}^{n} x_{2}^{(i)}+\cdots+w_{k} \sum_{i=1}^{n} x_{k}^{(i)}=\sum_{i=1}^{n} y^{(i)} \\ w_{0} \sum_{i=1}^{n} x_{1}^{(i)}+w_{1} \sum_{i=1}^{n}\left(x_{1}^{(i)}\right)^{2}+w_{2} \sum_{i=1}^{n} x_{1}^{(i)} x_{2}^{(i)}+\cdots+\hat{w}_{k} \sum_{i=1}^{n} x_{1}^{(i)} x_{k}^{(i)}=\sum_{i=1}^{n} x_{1}^{(i)} y^{(i)} \\ \vdots \\ w_{0} \sum_{i=1}^{n} x_{k}^{(i)}+w_{1} \sum_{i=1}^{n} x_{k}^{(i)} x_{1}^{(i)}+w_{2} \sum_{i=1}^{n} x_{k}^{(i)} x_{2}^{(i)}+\cdots+w_{k} \sum_{i=1}^{n}\left(x_{k}^{(i)}\right)^{2}=\sum_{i=1}^{n} x_{k}^{(i)} y^{(i)} \end{array}\right. \end{array}
⎩
⎨
⎧w0n+w1∑i=1nx1(i)+w2∑i=1nx2(i)+⋯+wk∑i=1nxk(i)=∑i=1ny(i)w0∑i=1nx1(i)+w1∑i=1n(x1(i))2+w2∑i=1nx1(i)x2(i)+⋯+w^k∑i=1nx1(i)xk(i)=∑i=1nx1(i)y(i)⋮w0∑i=1nxk(i)+w1∑i=1nxk(i)x1(i)+w2∑i=1nxk(i)x2(i)+⋯+wk∑i=1n(xk(i))2=∑i=1nxk(i)y(i)
接下来,我们计算 :
X
T
X
=
[
∑
i
=
1
n
1
∑
i
=
1
n
x
1
(
i
)
∑
i
=
1
n
x
i
(
i
)
⋯
∑
i
=
1
n
x
k
(
i
)
∑
i
=
1
n
x
1
(
i
)
∑
i
=
1
n
(
x
(
i
)
)
2
∑
i
=
1
n
x
1
(
i
)
x
2
(
i
)
⋯
∑
i
=
1
n
x
i
=
1
(
i
)
x
k
(
i
)
∑
i
=
1
n
x
2
(
i
)
∑
i
=
1
n
x
2
(
i
)
x
1
(
i
)
∑
i
=
1
n
(
x
2
(
i
)
)
2
⋯
∑
i
=
1
n
x
2
(
i
)
x
k
(
i
)
⋮
⋮
⋮
⋱
⋮
∑
i
=
1
n
x
k
(
i
)
∑
i
=
1
n
x
k
(
i
)
x
1
(
i
)
∑
i
=
1
n
x
k
(
i
)
x
2
(
i
)
⋯
∑
i
=
1
n
(
x
k
(
i
)
)
2
]
=
[
n
∑
i
=
1
n
x
1
(
i
)
∑
i
=
1
n
x
i
(
i
)
⋯
∑
i
=
1
n
x
k
(
i
)
∑
i
=
1
n
x
1
(
i
)
∑
i
=
1
n
x
i
(
i
)
(
i
)
x
i
(
i
)
∑
i
=
1
n
x
1
(
i
)
x
2
(
i
)
⋯
∑
i
=
1
n
x
1
(
i
)
x
k
(
i
)
∑
i
=
1
n
x
2
(
i
)
∑
i
=
1
n
x
2
(
i
)
x
1
(
i
)
∑
i
=
1
n
x
2
(
1
)
x
2
(
i
)
⋯
∑
i
=
1
n
x
2
(
)
x
k
(
i
)
⋮
⋮
⋮
⋱
⋮
∑
i
=
1
n
x
k
(
i
)
∑
i
=
1
n
x
k
(
i
)
x
1
(
i
)
∑
i
=
1
n
x
k
(
i
)
x
2
(
i
)
⋯
∑
i
=
1
n
x
k
(
i
)
x
k
(
i
)
]
\begin{array}{l} \begin{array}{l} X^{T} X=\left[\begin{array}{ccccc} \sum_{i=1}^{n} 1 & \sum_{i=1}^{n} x_{1}^{(i)} & \sum_{i=1}^{n} x_{i}^{(i)} & \cdots & \sum_{i=1}^{n} x_{k}^{(i)} \\ \sum_{i=1}^{n} x_{1}^{(i)} & \sum_{i=1}^{n}\left(x^{(i)}\right)^{2} & \sum_{i=1}^{n} x_{1}^{(i)} x_{2}^{(i)} & \cdots & \sum_{i=1}^{n} x_{i=1}^{(i)} x_{k}^{(i)} \\ \sum_{i=1}^{n} x_{2}^{(i)} & \sum_{i=1}^{n} x_{2}^{(i)} x_{1}^{(i)} & \sum_{i=1}^{n}\left(x_{2}^{(i)}\right)^{2} & \cdots & \sum_{i=1}^{n} x_{2}^{(i)} x_{k}^{(i)} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ \sum_{i=1}^{n} x_{k}^{(i)} & \sum_{i=1}^{n} x_{k}^{(i)} x_{1}^{(i)} & \sum_{i=1}^{n} x_{k}^{(i)} x_{2}^{(i)} & \cdots & \sum_{i=1}^{n}\left(x_{k}^{(i)}\right)^{2} \end{array}\right]= \\ {\left[\begin{array}{ccccc} n & \sum_{i=1}^{n} x_{1}^{(i)} & \sum_{i=1}^{n} x_{i}^{(i)} & \cdots & \sum_{i=1}^{n} x_{k}^{(i)} \\ \sum_{i=1}^{n} x_{1}^{(i)} & \sum_{i=1}^{n} x_{i(i)}^{(i)} x_{i}^{(i)} & \sum_{i=1}^{n} x_{1}^{(i)} x_{2}^{(i)} & \cdots & \sum_{i=1}^{n} x_{1}^{(i)} x_{k}^{(i)} \\ \sum_{i=1}^{n} x_{2}^{(i)} & \sum_{i=1}^{n} x_{2}^{(i)} x_{1}^{(i)} & \sum_{i=1}^{n} x_{2}^{(1)} x_{2}^{(i)} & \cdots & \sum_{i=1}^{n} x_{2}^{()} x_{k}^{(i)} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ \sum_{i=1}^{n} x_{k}^{(i)} & \sum_{i=1}^{n} x_{k}^{(i)} x_{1}^{(i)} & \sum_{i=1}^{n} x_{k}^{(i)} x_{2}^{(i)} & \cdots & \sum_{i=1}^{n} x_{k}^{(i)} x_{k}^{(i)} \end{array}\right]} \end{array} \end{array}
XTX=
∑i=1n1∑i=1nx1(i)∑i=1nx2(i)⋮∑i=1nxk(i)∑i=1nx1(i)∑i=1n(x(i))2∑i=1nx2(i)x1(i)⋮∑i=1nxk(i)x1(i)∑i=1nxi(i)∑i=1nx1(i)x2(i)∑i=1n(x2(i))2⋮∑i=1nxk(i)x2(i)⋯⋯⋯⋱⋯∑i=1nxk(i)∑i=1nxi=1(i)xk(i)∑i=1nx2(i)xk(i)⋮∑i=1n(xk(i))2
=
n∑i=1nx1(i)∑i=1nx2(i)⋮∑i=1nxk(i)∑i=1nx1(i)∑i=1nxi(i)(i)xi(i)∑i=1nx2(i)x1(i)⋮∑i=1nxk(i)x1(i)∑i=1nxi(i)∑i=1nx1(i)x2(i)∑i=1nx2(1)x2(i)⋮∑i=1nxk(i)x2(i)⋯⋯⋯⋱⋯∑i=1nxk(i)∑i=1nx1(i)xk(i)∑i=1nx2()xk(i)⋮∑i=1nxk(i)xk(i)
为了方便表示,将其改写为矩阵的形式
X
T
X
w
=
X
T
Y
\begin{array}{l}X^{T} X w=X^{T} Y\end{array}
XTXw=XTY
其中
X
X
X 为
n
n
n 行
k
+
1
k+1
k+1 列的矩阵
X
=
[
1
x
1
(
1
)
x
2
(
1
)
x
3
(
1
)
…
x
k
(
1
)
1
x
1
(
2
)
x
2
(
2
)
x
3
(
2
)
…
x
k
(
2
)
⋮
⋮
⋮
⋮
⋮
⋮
1
x
1
(
n
)
x
2
(
n
)
x
3
(
n
)
…
x
k
(
n
)
]
\begin{array}{l} X=\left[\begin{array}{cccccc} 1 & x_{1}^{(1)} & x_{2}^{(1)} & x_{3}^{(1)} & \ldots & x_{k}^{(1)} \\ 1 & x_{1}^{(2)} & x_{2}^{(2)} & x_{3}^{(2)} & \ldots & x_{k}^{(2)} \\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ 1 & x_{1}^{(n)} & x_{2}^{(n)} & x_{3}^{(n)} & \ldots & x_{k}^{(n)} \end{array}\right] \end{array}
X=
11⋮1x1(1)x1(2)⋮x1(n)x2(1)x2(2)⋮x2(n)x3(1)x3(2)⋮x3(n)……⋮…xk(1)xk(2)⋮xk(n)
X
T
Y
=
[
∑
i
=
1
n
y
(
i
)
∑
i
=
1
n
x
1
(
i
)
y
(
i
)
∑
i
=
1
n
x
2
(
i
)
y
(
i
)
⋮
∑
i
=
1
n
x
k
(
i
)
y
(
i
)
]
\begin{array}{l} X^{T} Y=\left[\begin{array}{c} \sum_{i=1}^{n} y^{(i)} \\ \sum_{i=1}^{n} x_{1}^{(i)} y^{(i)} \\ \sum_{i=1}^{n} x_{2}^{(i)} y^{(i)} \\ \vdots \\ \sum_{i=1}^{n} x_{k}^{(i)} y^{(i)} \end{array}\right] \end{array}
XTY=
∑i=1ny(i)∑i=1nx1(i)y(i)∑i=1nx2(i)y(i)⋮∑i=1nxk(i)y(i)
w
w
w 为
k
+
1
k+1
k+1 行列的矩阵,
Y
Y
Y 为
n
n
n 行1列的矩阵。
w
=
[
w
0
w
2
⋮
w
k
]
,
Y
=
[
y
(
1
)
y
(
2
)
⋮
y
(
n
)
]
\begin{array}{l} w=\left[\begin{array}{c} w_{0} \\ w_{2} \\ \vdots \\ w_{k} \end{array}\right], \quad Y=\left[\begin{array}{c} y^{(1)} \\ y^{(2)} \\ \vdots \\ y^{(n)} \end{array}\right] \end{array}
w=
w0w2⋮wk
,Y=
y(1)y(2)⋮y(n)
而理论情况下我们每个自变量
x
x
x 是相互独立的,从而
X
X
X 线性无关,故
X
T
X
X^{T} X
XTX 为可逆矩阵,解得:
w
=
(
X
T
X
)
−
1
X
T
Y
\begin{array}{l} w=\left(X^{T} X\right)^{-1} X^{T} Y \end{array}
w=(XTX)−1XTY这个结果也被称为正规方程,求解的方法称为正规方程法。
2.最小二乘法矩阵运算
1.代价函数
J
(
w
)
J(w)
J(w) 的矩阵形式
给定数据集
X
X
X 和标签
Y
Y
Y ,线性回归的代价函数
J
(
w
)
J(w)
J(w) 可以表示为:
J
(
w
)
=
1
2
(
X
w
−
Y
)
2
=
1
2
(
X
w
−
Y
)
T
(
X
w
−
Y
)
\begin{array}{l} J(w)=\frac{1}{2}(X w-Y)^{2}=\frac{1}{2}(X w-Y)^{T}(X w-Y) \end{array}
J(w)=21(Xw−Y)2=21(Xw−Y)T(Xw−Y)
这里
X
X
X 是设计矩阵,
w
w
w 是权重向量,
Y
Y
Y 是目标向量。
2.展开代价函数
根据矩阵的转置运算规则
(
A
+
B
)
T
=
A
T
+
B
T
(A+B)^{T}=A^{T}+B^{T}
(A+B)T=AT+BT ,我们可以展开
J
(
w
)
J(w)
J(w) ,有:
(
X
w
−
Y
)
T
=
w
T
X
T
−
Y
T
\begin{array}{l} (X w-Y)^{T}=w^{T} X^{T}-Y^{T} \end{array}
(Xw−Y)T=wTXT−YT
故
J
(
w
)
=
1
2
(
X
w
−
Y
)
T
(
X
w
−
Y
)
=
1
2
(
w
T
X
T
−
Y
T
)
(
X
w
−
Y
)
\begin{array}{l} J(w)=\frac{1}{2}(X w-Y)^{T}(X w-Y)=\frac{1}{2}\left(w^{T} X^{T}-Y^{T}\right)(X w-Y) \end{array}
J(w)=21(Xw−Y)T(Xw−Y)=21(wTXT−YT)(Xw−Y)
J
(
w
)
=
1
2
(
w
T
X
T
X
w
−
w
T
X
T
Y
−
Y
T
X
w
+
Y
T
Y
)
\begin{array}{l} J(w)=\frac{1}{2}\left(w^{T} X^{T} X w-w^{T} X^{T} Y-Y^{T} X w+Y^{T} Y\right) \end{array}
J(w)=21(wTXTXw−wTXTY−YTXw+YTY)
3.对代价函数求导
为了找到
w
w
w 的最优值,我们需要对
J
(
w
)
J(w)
J(w) 求导。根据矩阵微分公式,我们有:
∂
X
T
A
∂
X
=
∂
A
T
X
∂
X
=
A
∂
X
T
A
X
∂
X
=
(
A
+
A
T
)
X
\begin{array}{l} \begin{array}{l} \begin{array}{c} \frac{\partial X^{T} A}{\partial X}=\frac{\partial A^{T} X}{\partial X}=A \\ \frac{\partial X^{T} A X}{\partial X}=\left(A+A^{T}\right) X \end{array} \end{array} \end{array}
∂X∂XTA=∂X∂ATX=A∂X∂XTAX=(A+AT)X
其中
A
A
A 是对称矩阵。
应用这些公式到 J(w) 上,我们得到:
∂
J
(
w
)
∂
w
=
1
2
∂
(
w
T
X
T
X
w
−
w
T
X
T
Y
−
Y
T
X
w
+
Y
T
Y
)
∂
w
=
1
2
[
∂
w
T
X
T
X
w
∂
w
−
∂
w
T
X
T
Y
∂
w
−
∂
Y
T
X
w
∂
w
]
=
1
2
[
(
X
T
X
+
X
T
X
)
w
−
X
T
Y
−
X
T
Y
]
=
X
T
X
w
−
X
T
Y
\begin{array}{l} \begin{array}{l} \begin{aligned} \frac{\partial J(w)}{\partial w} & =\frac{1}{2} \frac{\partial\left(w^{T} X^{T} X w-w^{T} X^{T} Y-Y^{T} X w+Y^{T} Y\right)}{\partial w} \\ & =\frac{1}{2}\left[\frac{\partial w^{T} X^{T} X w}{\partial w}-\frac{\partial w^{T} X^{T} Y}{\partial w}-\frac{\partial Y^{T} X w}{\partial w}\right] \\ & =\frac{1}{2}\left[\left(X^{T} X+X^{T} X\right) w-X^{T} Y-X^{T} Y\right] \\ & =X^{T} X w-X^{T} Y \end{aligned} \end{array} \end{array}
∂w∂J(w)=21∂w∂(wTXTXw−wTXTY−YTXw+YTY)=21[∂w∂wTXTXw−∂w∂wTXTY−∂w∂YTXw]=21[(XTX+XTX)w−XTY−XTY]=XTXw−XTY由于
X
T
X
X^{T} X
XTX是对称矩阵,所以
(
X
T
X
)
T
=
X
T
X
\left(X^{T} X\right)^{T}=X^{T} X
(XTX)T=XTX 。同时,
(
Y
T
X
)
T
=
X
T
Y
\left(Y^{T} X\right)^{T}=X^{T} Y
(YTX)T=XTY 。
4.求解最优权重
w
w
w
令
∂
J
(
w
)
∂
w
=
0
\frac{\partial J(w)}{\partial w}=0
∂w∂J(w)=0 ,我们得到:
X
T
X
w
−
X
T
Y
=
0
X
T
X
w
=
X
T
Y
\begin{array}{l} \begin{array}{l} X^{T} X w-X^{T} Y=0 \\ X^{T} X w=X^{T} Y \end{array} \end{array}
XTXw−XTY=0XTXw=XTY
如果
X
T
X
X^{T} X
XTX 是正定矩阵(即满秩且所有特征值均大于
0
0
0 ),则它是可逆的。因此,我们可以解出
w
w
w :
w
=
(
X
T
X
)
−
1
X
T
Y
\begin{array}{l} w=\left(X^{T} X\right)^{-1} X^{T} Y \end{array}
w=(XTX)−1XTY
5.讨论与优化
当
X
T
X
X^{T} X
XTX不可逆时(例如,当特征数量大于样本数量时),我们不能直接使用上述公式。此时,可以考虑使用正则化方法(如岭回归或套索回归)来使矩阵可逆。
当特征数量
n
n
n 较大时,求逆运算的代价非常高。在这种情况下,梯度下降法或其他优化算法通常更为高效。
6.梯度下降法简介
梯度下降法是一种迭代优化算法,用于找到函数的局部最小值。在每次迭代中,它都会沿着梯度(即函数值增加最快的方向)的负方向更新参数。对于线性回归问题,梯度下降法可以表示为:
w
new
=
w
old
−
α
∂
J
(
w
)
∂
w
\begin{array}{l} w_{\text {new }}=w_{\text {old }}-\alpha \frac{\partial J(w)}{\partial w} \end{array}
wnew =wold −α∂w∂J(w)
其中 α \alpha α 是学习率(一个正数),用于控制每次更新的步长。通过多次迭代,梯度下降法可以逐渐逼近最优解。
总结
以上就是今天要讲的内容,本文探讨了多元线性回归模型的核心算法——最小二乘法原理。多元线性回归模型是在实际应用中广泛使用的统计方法,特别适用于预测一个连续的目标变量与多个自变量之间的关系。通过对这些关系的线性建模,我们能够更好地理解和预测复杂现象。