多变量线性回归(linear regression with multiple variables)
基本公式及字母
一个数据对应着上表中的一行,
θ
(
2
)
\theta^{(2)}
θ(2)代表第二个数据。(也就是表中红线圈出的位置)
x
j
(
i
)
x_j^{(i)}
xj(i):代表第i个数据,第j个特征量
如
x
3
(
2
)
x_3^{(2)}
x3(2)代表2
多元线性回归公式为:
h
θ
(
x
(
i
)
)
=
θ
0
x
0
+
θ
1
x
1
+
θ
2
x
2
+
…
…
+
θ
n
x
n
h_\theta^{(x^{(i)})}=\theta_0x_0+\theta_1x_1+\theta_2x_2+……+\theta_nx_n
hθ(x(i))=θ0x0+θ1x1+θ2x2+……+θnxn
令
x
0
=
0
x_0=0
x0=0得:
h
θ
(
x
(
i
)
)
=
θ
0
+
θ
1
x
1
+
θ
2
x
2
+
…
…
+
θ
n
x
n
h_\theta^{(x^{(i)})}=\theta_0+\theta_1x_1+\theta_2x_2+……+\theta_nx_n
hθ(x(i))=θ0+θ1x1+θ2x2+……+θnxn
化简得到
h
θ
(
x
(
i
)
)
=
θ
T
x
h_\theta^{(x^{(i)})}=\theta^Tx
hθ(x(i))=θTx
J
(
θ
0
,
…
…
,
θ
n
)
=
1
2
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
J(\theta_0,……,\theta_n)=\frac{1}{2m}\sum_{i=1}^{m}(h_\theta^{(x^{(i)})}-y^{(i)})^2
J(θ0,……,θn)=2m1∑i=1m(hθ(x(i))−y(i))2
梯度下降算法:
θ
j
:
=
θ
j
−
α
∂
J
∂
θ
j
\theta_j:=\theta_j-\alpha\frac{\partial{J}}{\partial\theta_j}
θj:=θj−α∂θj∂J
多元线性回归的梯度下降算法
联立上述各式得:
代入j的值就如下图所示:
多元线性回归的梯度下降算法与单变量线性回归的梯度下降算法的区别如下所示:
总而言之,单变量是多变量的特殊形式,n=1时为单变量,n>1时为多变量。
特征值缩放(feature scaling)
为了加速梯度下降,我们通常把特征量的取值缩小到一个适当的范围,这个范围不可过大,也不可过小,若-a
<
x
j
<
<x_j<
<xj<a,a通常不大于10,a可以等于
1
3
\frac{1}{3}
31,但a不能等于像
0.00001
0.00001
0.00001这样过小的数。每个
x
j
x_j
xj的范围要大致相同(相似),但也不要求完全严格一样。如(-4,4)与(0,3)这两个区间就可以看作大致相同(相似)。
均值归一化(mean normalization):通过这个方法可以确定
x
j
x_j
xj的取值范围
公式为:
x
j
:
=
x
j
−
μ
j
s
j
x_j:=\frac{x_j-\mu_j}{s_j}
xj:=sjxj−μj(
x
0
x_0
x0除外)
x
j
x_j
xj:第j个特征量
μ
j
\mu_j
μj:数据集中所有的
x
j
x_j
xj的平均值
s
j
s_j
sj:该特征值的范围(即最大值-最小值)
学习速率 α \alpha α
如何确定梯度下降算法正常工作?
通过代价函数随迭代步数变化的二维曲线图判断。
像上图都表示未正常工作,为了解决这个问题,我们需要选择一个较小的
α
\alpha
α值。
像上图就表示正常工作了,代价函数可以通过很多步的迭代到达最小值,代价函数从而收敛。
如何选择 α \alpha α呢?
我们可以像上图那样选择
α
\alpha
α的范围,然后画出代价函数与迭代步数的二维曲线图,寻找如上图梯度下降算法正常工作的图像,然后确定
α
\alpha
α的值。
多项式回归(polynomial regression)
上图,我们可以选择一个三次函数拟合数据。
特征量的选择
通常我们是先有数据,后根据数据选择一个能更好的拟合的算法,这通常与如何选择特征量有关。如上图所示,我们除了选择三次函数拟合数据,也可以选择一个平方平方根函数拟合数据。
标准方程法(normal equation)
一种可以直接求出
θ
\theta
θ值的算法。并且不用考虑均值归一化。
如上图所示,
θ
\theta
θ为实数,
J
(
θ
)
J(\theta)
J(θ)是一个以
θ
\theta
θ为变量的二次函数,在中学我们就学过如何求出
θ
\theta
θ的值。
上图的X被称为设计矩阵(designed matrix),X的构造过程如下图所示:
由此,我们可以得到原始公式:
y
=
X
θ
y=X\theta
y=Xθ
经过一系列变形得到最终结果:
θ
=
(
X
T
X
)
−
1
X
T
y
\theta=(X^TX)^{-1}X^Ty
θ=(XTX)−1XTy(之所以最后是这个结果是因为要考虑到矩阵的维度)
梯度下降算法与标准方程算法的优缺点
总的来说,当n的值比较大时我们最好选择梯度下降算法,当n的值较小,我们可以选择标准方程算法。(n=10000是一个不错的分割点)