## 介绍
给定数据集 D={(X1,Y2),…,(XN,YN)} 例如 Xi 和 Yi 是连续的,“线性回归”的目标是找到适合此数据的最佳直线。
换句话说,我们要创建模型:
y^=a∗0+a∗1.x∗1+⋯+a∗p.x_p
其中 p 是变量 X 的维数。
在本文中,我们将了解如何在三种情况下解决此问题:
-
当 X 是一维时,即 p=1。
-
当 X 是多维时,即 p>1。
-
使用梯度下降。
X 是一维的(普通最小二乘法)
我们想要创建的模型具有以下形状:
y^=a∗0+a∗1.x
请记住,线性回归的目标是找到最适合数据的直线。换句话说,我们需要最小化数据点和线之间的距离。
(a∗0^,a∗1^)=(a∗0,a∗1)argmin∑∗i=1N(y∗i−y∗i^)2
=(a∗0,a∗1)argmin∑∗i=1N(y∗i−(a∗0+a∗1.x∗i))2
让我们说:
L=∑∗i=1N(y∗i−(a∗0+a∗1.x_i))2
为了找到最小值,我们需要求解以下方程:
{∂a0∂L=0∂a1∂L=0
⎩⎨⎧i=1∑N−2(yi−(a0+a1.xi))=0i=1∑N−2xi(yi−(a0+a1.xi))=0
我们首先建立第一个方程:
i=1∑Nyi−i=1∑Na0+i=1∑Na1.xi=0
i=1∑Nyi−Na0+i=1∑Na1.xi=0
a0=Ni=1∑Nyi−Ni=1∑Nxia1
a0=Y−Xa1
我们代入第二个方程:
i=1∑Nxi(yi−Y+Xa1−a1xi)=0
i=1∑N(yi−Y)+a1(X−xi)=0
i=1∑N(yi−Y)−i=1∑Na1(xi−X)=0
a1=i=1∑N(xi−X)i=1∑N(yi−Y)=i=1∑N(xi−X)2i=1∑N(yi−Y)(xi−X)=VAR(X)COV(X,Y)
我们代入a0:
{a0=Y−XVAR(X)COV(X,Y)a1=VAR(X)COV(X,Y)
X 是多维的(普通最小二乘)
在这种情况下,Xi不再是一个实数,而是一个大小为p的向量:
X∗i=(X∗i1,X∗i2,…,X∗ip)
因此,模型写成如下:
y^=a∗0+a∗1x∗1+a∗2x∗2+⋯+a∗px_p
或者,可以写成矩阵格式:
Y^=X.W
在哪里:
-
Y 的形状为 (N,1)。
-
X 的形状为 (N,p)。
-
W 的形状为 (p,1):这是参数向量 (w1,w2,…,wp)。
与第一种情况类似,我们的目标是尽量减少以下数量:
W^=Wargmin∑∗i=1N(y∗i−y_i^)2
让我们再次提出:
L=∑∗i=1N(y∗i−y_i^)2
=(Y−XW)T(Y−XW)
=YTY−YTXW−WTXTY+WTXTXW
=YTY−2WTXTY+WTXTXW
由于我们想要相对于 W 最小化 L,因此我们可以忽略第一项“YTY”,因为它独立于 W,让我们求解以下方程:
∂W∂(−2WTXTY+WTXTXW)=0
−2XTY+2XTXW^=0
W^=(XTX)−1XTY
使用梯度下降
这是梯度下降算法的公式:
w∗n+1=w∗n−lr×∂w_n∂f
现在我们所要做的就是将其应用于两个参数 a0 和 a1(在单变量 X 的情况下):
{a0(n+1)=a0(n)−lr×∂a0∂La1(n+1)=a1(n)−lr×∂a1∂L
我们知道:
⎩⎨⎧∂a0∂L=i=1∑N−2(yi−(a0+a1.xi))∂a1∂L=i=1∑N−2xi(yi−(a0+a1.xi))
通过替换:
⎩⎨⎧a0(n+1)=a0(n)+2×lr×i=1∑N(yi−(a0(n)+a1(n).xi))a1(n+1)=a1(n)+2×lr×i=1∑Nxi(yi−(a0(n)+a1(n).xi))
测验
-
多维线性回归情况下最优参数向量的公式是什么:
-
VAR(Y)COV(X,Y)
-
VAR(X)COV(X,Y)
-
(XTX)−1XTY “正确”
-
为什么我们要把导数设为0?
-
寻找极值。 “正确的”
-
最小化导数。
-
只保留导数的实部。
-
线性回归的目标是什么?
-
找到经过所有点的线。
-
找到最能描述数据的行。“正确”
-
找到最能分隔数据的线。