1:多维特征
以前讨论的是单变量的特征,现在增加更多的特征,例如房价模型中,增加楼房层数,房间数,房子的年份等等,每一个特征为
(
x
1
,
x
2
,
.
.
.
,
x
n
)
\left( {x_{1}},{x_{2}},...,{x_{n}} \right)
(x1,x2,...,xn),n表示共有多少个特征
x
(
i
)
{x^{\left( i \right)}}
x(i)表示第 i 行
x
(
2
)
=
[
1416
3
2
40
]
{x}^{(2)}\text{=}\begin{bmatrix} 1416\\\ 3\\\ 2\\\ 40 \end{bmatrix}
x(2)=⎣⎢⎢⎡1416 3 2 40⎦⎥⎥⎤,第二行的四个特征
假设h为:
h
θ
(
x
)
=
θ
0
+
θ
1
x
1
+
θ
2
x
2
+
.
.
.
+
θ
n
x
n
h_{\theta}\left( x \right)={\theta_{0}}+{\theta_{1}}{x_{1}}+{\theta_{2}}{x_{2}}+...+{\theta_{n}}{x_{n}}
hθ(x)=θ0+θ1x1+θ2x2+...+θnxn
整齐引入
x
0
=
1
x_{0}=1
x0=1
变成
h
θ
(
x
)
=
θ
0
x
0
+
θ
1
x
1
+
θ
2
x
2
+
.
.
.
+
θ
n
x
n
h_{\theta} \left( x \right)={\theta_{0}}{x_{0}}+{\theta_{1}}{x_{1}}+{\theta_{2}}{x_{2}}+...+{\theta_{n}}{x_{n}}
hθ(x)=θ0x0+θ1x1+θ2x2+...+θnxn
特征矩阵
X
X
X的维度是
m
∗
(
n
+
1
)
m*(n+1)
m∗(n+1) 可以认为m个房子
因此公式可以简化为:
h
θ
(
x
)
=
θ
T
X
h_{\theta} \left( x \right)={\theta^{T}}X
hθ(x)=θTX,其中上标
T
T
T代表矩阵转置。
2:多变梯度下降
和单变量线性回归类似,在多变量线性回归中,也有代价函数,也要求代价函数最小。找一系列
θ
{\theta_{}}
θ
J
(
θ
0
,
θ
1
.
.
.
θ
n
)
=
1
2
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
J\left( {\theta_{0}},{\theta_{1}}...{\theta_{n}} \right)=\frac{1}{2m}\sum\limits_{i=1}^{m}{{{\left( h_{\theta} \left({x}^{\left( i \right)} \right)-{y}^{\left( i \right)} \right)}^{2}}}
J(θ0,θ1...θn)=2m1i=1∑m(hθ(x(i))−y(i))2 ,
其中:
h
θ
(
x
)
=
θ
T
X
=
θ
0
+
θ
1
x
1
+
θ
2
x
2
+
.
.
.
+
θ
n
x
n
h_{\theta}\left( x \right)=\theta^{T}X={\theta_{0}}+{\theta_{1}}{x_{1}}+{\theta_{2}}{x_{2}}+...+{\theta_{n}}{x_{n}}
hθ(x)=θTX=θ0+θ1x1+θ2x2+...+θnxn ,
和单变量同理,多变量的梯度下降法表示为:
带入J:
同时更新所有参数
3:梯度下降法:特征缩放与学习率
特征缩放简单来说是不能让不同的变量数量级差的太大,这会导致梯度下降无法完成。尽量将所有特征的尺度缩放在-1至1之间
最简单的方法是令:
x
n
=
x
n
−
μ
n
s
n
{{x}_{n}}=\frac{{{x}_{n}}-{{\mu}_{n}}}{{{s}_{n}}}
xn=snxn−μn,其中
μ
n
{\mu_{n}}
μn是平均值,
s
n
{s_{n}}
sn是标准差。
学习率:过小速度太慢,过大越过局部最小。通常考虑
α
=
0.01
,
0.03
,
0.1
,
0.3
,
1
,
3
,
10
\alpha=0.01,0.03,0.1,0.3,1,3,10
α=0.01,0.03,0.1,0.3,1,3,10
4:特征与多项式回归
有的回归并不适合线性回归,有时我们需要曲线来适应我们的数据,比如一个二次方模型:
h
θ
(
x
)
=
θ
0
+
θ
1
x
1
+
θ
2
x
2
2
h_{\theta}\left( x \right)={\theta_{0}}+{\theta_{1}}{x_{1}}+{\theta_{2}}{x_{2}^2}
hθ(x)=θ0+θ1x1+θ2x22,或者三次方模型:
h
θ
(
x
)
=
θ
0
+
θ
1
x
1
+
θ
2
x
2
2
+
θ
3
x
3
3
h_{\theta}\left( x \right)={\theta_{0}}+{\theta_{1}}{x_{1}}+{\theta_{2}}{x_{2}^2}+{\theta_{3}}{x_{3}^3}
hθ(x)=θ0+θ1x1+θ2x22+θ3x33
也可以令
x
2
=
x
2
2
,
x
3
=
x
3
3
{{x}_{2}}=x_{2}^{2},{{x}_{3}}=x_{3}^{3}
x2=x22,x3=x33,从而将模型转化为线性回归模型。
如果我们采用多项式回归模型,在运行梯度下降算法前,特征缩放很有必要
4:正规方程
除了梯度下降的另一种求解线性回归问题的方法。
一个代价函数如下:
找代价函数最小值(找一系列
θ
{\theta_{}}
θ),微积分学过求导即:
∂
∂
θ
j
J
(
θ
j
)
=
0
\frac{\partial}{\partial{\theta_{j}}}J\left( {\theta_{j}} \right)=0
∂θj∂J(θj)=0 。
正规方程:
θ
=
(
X
T
X
)
−
1
X
T
y
\theta ={{\left( {X^T}X \right)}^{-1}}{X^{T}}y
θ=(XTX)−1XTy
X为特征矩阵(包含${{x}_{0}}),y是一个个体的结果,解这个方程得到的就是
θ
{\theta_{}}
θ
例:
5:梯度下降与正规方程比较:
更多详细查看黄海广机器学习笔记。*