目录
相关概念
中 | 英 | 含义 |
---|---|---|
多元线性回归 | Multivariate linear regression | |
特征缩放 | feature scaling | |
均值归一化 | mean normalization | |
多项式回归 | polynomial regression | 将多项式函数拟合到训练集中 |
正规方程 | normal equation | 求参数θ的解析解法 |
房价预估问题再整理
- m为样本数
- n为特征数
Hypothesis
h
θ
(
x
)
=
θ
T
x
h_\theta(x) = \theta^Tx
hθ(x)=θTx
θ
=
[
θ
0
,
θ
1
…
…
θ
n
]
T
,
x
=
[
x
0
,
x
1
,
x
2
…
…
x
n
]
T
,
x
0
≡
1
\theta = [\theta_0,\theta_1……\theta_n]^T,x= [x_0,x_1,x_2……x_n]^T,x_0\equiv1
θ=[θ0,θ1……θn]T,x=[x0,x1,x2……xn]T,x0≡1
Cost function
J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta) = \frac{1}{2m}\sum_{i = 1}^m{(h_\theta(x^{(i)})-y^{(i)})}^2 J(θ)=2m1i=1∑m(hθ(x(i))−y(i))2
gradient descent
θ j ≔ θ j − α m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ∗ x j ( i ) \theta_j\coloneqq\theta_j - \frac{\alpha}{m}\sum_{i = 1}^m{(h_\theta(x^{(i)})-y^{(i)})*x_j^{(i)}} θj:=θj−mαi=1∑m(hθ(x(i))−y(i))∗xj(i)
运算过程
梯度下降法运算技巧
特征缩放 feature scaling
对于特征x = [x0,x1,x2,x3……xn]T,尽量让每一种特征的取值范围都在一个相似的范围内。因为每个参数θj变化率和xj有关,所以当每一种特征的取值范围相似时,参数在梯度下降过程中变化幅度也相似,不会有太大差异,这样可以加快梯度下降算法的速度,减少迭代次数,尽快收敛到最小值。
具体操作
学习率 learning rate
学习率的影响
- 当学习率很小的时候,梯度下降算法非常慢,效率低
- 当学习率很大的时候,cost function可能不会收敛,反而增大
如何反映梯度下降算法的运行情况?
- 借助迭代次数与J(θ)曲线,正常情况下,随着迭代次数的增加,J(θ)越来越小趋近于最小值。
- 如果出现其他情况,排除代码本身逻辑错误,一般是学习率过大需要调整。
学习率选择方法
尝试一系列的数据:0.001,0.003,0.01,0.03……
正规方程
可以迅速求解出当J(θ)最小的时候,对应的θ的值。不需要进行特征缩放。
θ
=
(
X
T
X
)
−
1
X
T
y
\theta = (X^TX)^{-1}X^Ty
θ=(XTX)−1XTy
公式推导
对比
梯度下降 | 正规方程 | |
---|---|---|
优点 | * 当特征很多的时候,梯度下降法表现很好 | * 不需要学习率,不需要迭代 |
局限性 | *需要调整学习率,是迭代算法 | 当n很大的时候,效率低(要进行大矩阵计算);不适用于一些其他复杂的学习算法 |