【Nan's 吴恩达机器学习笔记】第四章 多变量线性回归
多变量线性回归(Multivariable Linear Regression)
Notation
标记 | 含义 |
---|---|
n | 代表特征features的数量 |
x ( i ) x^{(i)} x(i) | 代表第 i 个训练实例,是特征矩阵中的第i行,是一个向量(vector) |
x j ( i ) x^{(i)}_j xj(i) | 代表特征矩阵中第 𝑖 行的第 𝑗 个特征,也就是第 𝑖 个训练实例的第 𝑗 个特征 |
h θ h_θ hθ | h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n h_θ (x)=θ_0+θ_1 x_1+θ_2 x_2+...+θ_n x_n hθ(x)=θ0+θ1x1+θ2x2+...+θnxn |
简化公式,引入
x
0
x_0
x0=1,公式转化为
h
θ
(
x
)
=
θ
0
x
0
+
θ
1
x
1
+
θ
2
x
2
+
.
.
.
+
θ
n
x
n
h_θ (x)=θ_0x_0+θ_1 x_1+θ_2 x_2+...+θ_n x_n
hθ(x)=θ0x0+θ1x1+θ2x2+...+θnxn
此时模型中的参数是一个n+1维的向量,任何一个训练实例也都是n+1维的向量。
特征矩阵X的维度是 m*(n+1)。
因此公式可以简化,其中上标T代表矩阵转置:
h
θ
(
x
)
=
θ
T
x
h_θ (x)=θ^Tx
hθ(x)=θTx
4.2 多元梯度下降法
特征缩放Feature Scaling
面对多维特征问题的时候,我们要保证这些特征都具有相近的尺度,这将帮助梯度下降算法更快地收敛。
解决方法:尝试将所有特征的尺度都尽量缩放到-1到1之间,其中
μ
n
μ_n
μn是平均值,
s
n
s_n
sn是标准差或极差。令:
x
n
=
(
x
n
−
μ
n
)
/
s
n
x_n=(x_n-μ_n)/s_n
xn=(xn−μn)/sn
学习率α Learning rate
梯度下降算法收敛所需要的迭代次数,是根据模型的不同而不同的。
可以绘制迭代次数和代价函数的图表来观测算法在何时趋于收敛。
如果学习率a过小,则达到收敛所需的迭代次数会非常高;
如果学习率a过大,每次迭代可能不会减小代价函数,可能会越过局部最小值导致无法收敛。
通常可以考虑尝试些学习率:α=0.01,0.03,0.1,0.3,1,3,10 一般按照三倍来尝试增大!
4.5 多项式回归
线性回归并不适用于所有数据,有时我们需要曲线来适应我们的数据,比如一个二次方模型:
h
θ
(
x
)
=
θ
0
+
θ
1
x
1
+
θ
2
x
2
2
h_θ (x)=θ_0+θ_1 x_1+θ_2 x_2^2
hθ(x)=θ0+θ1x1+θ2x22
我们可以令:
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.6 正规方程(Normal Equation)
对于某些线性回归问题,正规方程方法是更好的解决方案。
正规方程是通过求解下面的方程,来找出使得代价函数最小参数的:
∂
∂
θ
j
J
(
θ
j
)
=
0
\frac {∂}{∂θ_j} J(θ_j )=0
∂θj∂J(θj)=0。
假设我们的训练集特征矩阵为 X(包含了
x
0
x_0
x0=1)并且我们的训练集结果为向量 y,则利用正规方程解出向量 即可求出最小参数θ:
θ
=
(
X
T
X
)
−
1
X
T
y
θ=(X^TX)^{-1} X^Ty
θ=(XTX)−1XTy 。
不需要做特征缩放!
4.7 对比
梯度下降Gradient Descent | 正规方程 Normal Equation |
---|---|
需要选择学习率α | 不需要 |
需要多次迭代 | 一次运算得出 |
特征数量n大时也能较好适用 | 需要计算(X^T X)^(-1) 如果特征数量n较大则运算代价大。时间复杂度为O(n^3 ),通常来说当n小于10000 时还是可以接受的 |
适用于各种类型的模型 | 只适用于线性模型,不适合逻辑回归模型等其他模型 |