多变量线性回归中的符号表示:
m:
m
:
表示训练样本的数量
n:
n
:
表示特征量的数量
x(i):
x
(
i
)
:
表示第
i
i
个训练样本的输入特征向量
表示第
i
i
个训练样本的第个特征量
多变量线性回归的假设函数:
代价函数为:
当 n≥1 n ≥ 1 时,形式为:
Repeat {
上式即为多元线性回归的梯度下降法。
特征缩放(
feature scaling
f
e
a
t
u
r
e
s
c
a
l
i
n
g
):确保各特征取值在一个相近的范围,梯度下降法可以更快收敛。
目的:将每个特征的取值约束在
[−1,1]
[
−
1
,
1
]
的范围,即
−1≤xi≤1
−
1
≤
x
i
≤
1
,当然,并非如此严格
举例: x1:size(0−2000),x2:number(1−5) x 1 : s i z e ( 0 − 2000 ) , x 2 : n u m b e r ( 1 − 5 )
方法1:将特征除以其最大值
具体:
x1=size2000x2=number5
x
1
=
s
i
z
e
2000
x
2
=
n
u
m
b
e
r
5
则:
0≤x1≤115≤x2≤1
0
≤
x
1
≤
1
1
5
≤
x
2
≤
1
方法2:均值归一化,相对方法1来说,用
xi−μi
x
i
−
μ
i
代替
xi
x
i
来确保特征值具有0的平均值
具体:
x1=size−10002000x2=number−25
x
1
=
s
i
z
e
−
1000
2000
x
2
=
n
u
m
b
e
r
−
2
5
则:
−0.5≤x1≤0.5−0.5≤x1≤0.5
−
0.5
≤
x
1
≤
0.5
−
0.5
≤
x
1
≤
0.5
(约)
综合上述两种方法,得到进阶标准法:
令
xi→xi−μisi
x
i
→
x
i
−
μ
i
s
i
,其中:
μi
μ
i
为
xi
x
i
取值的平均值,
si
s
i
为
xi
x
i
取值的最大值
−
−
最小值或取值的均方差。
确保梯度下降法是否运行正确的方法: J(θ) J ( θ ) (代价函数)在每次迭代后都应减小。
自动收敛检测:当 J(θ) J ( θ ) 在一次迭代后减少得少于一个很小的值,比如 10−3 10 − 3 ,可以认为已收敛。
对于足够小的 α α 来说, J(θ) J ( θ ) 应该在每次迭代后都减小,但如果 α α 太小,梯度下降法收敛得很慢,如果 α α 太大, J(θ) J ( θ ) 不一定会在每次迭代后都减小,不一定会收敛。
当线性假设函数不能适用于所有的样本时,可以通过对特征值进行平方、立方或开方来进行调整。
正规方程(Normal Equation):为某些线性回归问题,提供了一种求
θ
θ
的解析解法。
当
θ
θ
为一个
n+1
n
+
1
维的参数向量,即多元线性回归问题时:
代价函数为:
当有 m m 个样本, n n 个特征量,则:
使得线性回归的代价函数 J(θ) J ( θ ) 最小化的 θ θ 值:
使用正规方程法时,不需要归一化特征变量,但使用梯度下降法时,归一化特征变量就很重要。
当有
m
m
个训练样本,个特征向量时,比较梯度下降法和正规方程法:
1. 梯度下降法:
- 需要选择学习速率
α
α
;
- 需要进行多次迭代;
- 当
n
n
很大时也能运行得很好,算法复杂度为。
2. 正规方程法:
- 不需要选择学习速率
α
α
;
- 不需要进行迭代;
- 需要计算
(XTX)−1
(
X
T
X
)
−
1
,当
n
n
很大时计算得很慢,算法复杂度为
注:当 n≥10000 n ≥ 10000 左右时,可以考虑替换用梯度下降法求 θ θ 。
在正规方程法中,若
XTX
X
T
X
是不可逆的,一般有两种原因:
1. 冗余的特征量,存在两个特征量相关联的情况;
2. 特征量太多(如
m≤n
m
≤
n
),可尝试删除多余特征量或正则化。
本课提交作业的流程(例):
- 打开 WarmUpExercise.m W a r m U p E x e r c i s e . m 文件,在其中 YOURCODEHERE Y O U R C O D E H E R E 处写入代码,保存;
- 在 Octave O c t a v e 命令行中切换到 WarmUpExercise.m W a r m U p E x e r c i s e . m 存放的目录,例如: cd′XXX′ c d ′ X X X ′ ;
- 在命令行输入: WarmUpExercise() W a r m U p E x e r c i s e ( ) ;
- 在命令行输入: Submit() S u b m i t ( ) ,选择要提交的部分;
- 输入邮箱地址及提交密码进行提交。