MATLAB | 最小二乘法的两种解读
Posted slandarer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB | 最小二乘法的两种解读相关的知识,希望对你有一定的参考价值。
最小二乘法
大部分的最小二乘法公式推导,都是使用的 代价函数偏导
的方式来求得的,在这里首先展示如何通过代价函数求偏导的方式得到最小二乘公式,再展示李扬老师讲解的如何由向量到子空间的距离
得来最小二乘法公式。
代价函数与最小二乘法
假设我们的拟合结果为:
h θ ( x ) = ∑ i = 0 n θ i x i = θ 0 + θ 1 x 1 + ⋯ + θ n x n h_\\theta(x)=\\sum_i=0^n \\theta_i x_i=\\theta_0+\\theta_1 x_1+\\cdots+\\theta_n x_n hθ(x)=i=0∑nθixi=θ0+θ1x1+⋯+θnxn
则平方损失函数为:
J ( θ ) = ∑ j = 1 m ( h θ ( x ( j ) ) − y ( j ) ) 2 = ∑ j = 1 m ( ∑ i = 0 n θ i x i ( j ) − y ( j ) ) 2 J(\\theta)=\\sum_j=1^m\\left(h_\\theta\\left(x^(j)\\right)-y^(j)\\right)^2=\\sum_j=1^m\\left(\\sum_i=0^n \\theta_i x_i^(j)-y^(j)\\right)^2 J(θ)=j=1∑m(hθ(x(j))−y(j))2=j=1∑m(i=0∑nθixi(j)−y(j))2
其中
x
(
j
)
,
y
(
j
)
x^(j),y^(j)
x(j),y(j)为一组数据点,
x
(
j
)
x^(j)
x(j)是长度为
n
+
1
n+1
n+1的向量,
y
(
j
)
y^(j)
y(j)是数值,而
x
i
→
\\overrightarrowx_i
xi我们定义为长为
m
m
m的向量,这在之后会被用到,注意这里为了追求整齐性,我们直接定义
x
0
x_0
x0衡为常数1:
x
(
j
)
=
(
1
,
x
1
(
j
)
,
…
,
x
n
(
j
)
)
x
i
→
=
(
x
i
(
1
)
,
x
i
(
2
)
,
…
,
x
i
(
m
)
)
\\beginaligned &x^(j)=\\left(1, x_1^(j), \\ldots, x_n^(j) \\right)\\\\ &\\overrightarrowx_i=\\left(x_i^(1), x_i^(2), \\ldots, x_i^(m)\\right) \\endaligned
x(j)=(1,x1(j),…,xn(j))xi=(xi(1),xi(2),…,xi(m))
平方损失函数的形式只有极小值,没有极大值,我们要使代价函数最小,我们要找到其极值点,即偏导均为0的点,代价函数对于各参数偏导如下:
∂
J
(
θ
)
θ
i
=
2
∑
j
=
1
m
(
h
θ
(
x
(
j
)
)
−
y
(
j
)
)
x
i
(
j
)
,
i
=
0
,
1
,
2
,
.
.
.
n
\\frac\\partial J(\\theta)\\theta_i=2 \\sum_j=1^m\\left(h_\\theta\\left(x^(j)\\right)-y^(j)\\right) x_i^(j),i=0,1,2,...n
θi∂J(θ)=2j=1∑m(hθ(x(j))−y(j))xi(j),i=0,1,2,...n 以上是关于MATLAB | 最小二乘法的两种解读的主要内容,如果未能解决你的问题,请参考以下文章 MATLAB | 逻辑回归(Logistic Regression)+书推 MATLAB | 赠书 | 逻辑回归(Logistic Regression)
令偏导为0得:
∑
j
=
1
m
(
h
θ
(
x
(
j
)
)
−
y
(
j
)
)
x
i
(
j
)
=
0
,
i
=
0
,
1
,
2
,
.
.
.
,
n
⇒
∑
j
=
1
m
(
h
θ
(
x
(
j
)
)
x
i
(
j
)
)
=
∑
j
=
1
m
(
y
(
j
)
x
i
(
j
)
)
,
i
=
0
,
1
,
2
,
.
.
.
,
n
\\beginaligned &\\sum_j=1^m\\left(h_\\theta\\left(x^(j)\\right)-y^(j)\\right) x_i^(j)=0,i=0,1,2,...,n \\\\ \\Rightarrow &\\sum_j=1^m\\left(h_\\theta\\left(x^(j)\\right)x_i^(j)\\right)=\\sum_j=1^m\\left(y^(j)x_i^(j)\\right),i=0,1,2,...,n \\endaligned
⇒j=1∑m(hθ(x(j))−y(j))x<