多元线性回归算法
文章目录
一,引例: 房价问题升级版
已知一组房屋的属性及其出售价格,现在给定一个待出售的房屋,请问是否能给予估价?
与之前单变量问题不同的点在于样本的特征属性变多了,这使得我们能获取更多信息,同时也要求假设的模型能处理多特征问题。
表 4-1 多特征房价问题
面积(m^2) | 房间数 | 楼层数 | 房屋寿命(年) | 出售价格($1000) |
---|---|---|---|---|
2014 | 5 | 1 | 45 | 460 |
1416 | 3 | 2 | 40 | 232 |
1534 | 3 | 2 | 30 | 315 |
852 | 2 | 1 | 36 | 178 |
… | … | … | … | … |
1.1 提出假设: 多元线性模型
假设样本共有n个特征,将单元线性回归方程进行扩展可得一下多元线性模型,其中
X
i
X_{i}
Xi为表中第
i
i
i列对应的属性值:
h
Θ
(
X
)
=
Y
=
Θ
0
+
Θ
1
∗
X
1
+
Θ
2
∗
X
2
+
.
.
.
.
.
.
+
Θ
n
∗
X
n
h_{\Theta}(X) = Y = \Theta_{0}+ \Theta_{1}*X_{1} + \Theta_{2}*X_{2} + ...... + \Theta_{n}*X_{n}
hΘ(X)=Y=Θ0+Θ1∗X1+Θ2∗X2+......+Θn∗Xn (公式 4.1)
可令向量
Θ
=
(
Θ
0
,
Θ
1
,
Θ
2
,
.
.
.
.
.
.
,
Θ
n
)
T
,
X
=
(
1
,
X
1
,
X
2
,
.
.
.
.
.
.
,
X
n
)
T
\Theta = (\Theta_{0},\Theta_{1},\Theta_{2},......,\Theta_{n})^{T},X = (1,X_{1},X_{2},......,X_{n})^T
Θ=(Θ0,Θ1,Θ2,......,Θn)T,X=(1,X1,X2,......,Xn)T
则假设函数可简写为:
h
Θ
(
X
)
=
Θ
T
X
h_{\Theta}(X) = \Theta^{T}X
hΘ(X)=ΘTX (公式4.2)
该模型即为多元线性回归模型。
1.2 损失函数与梯度下降法
多元线性回归模型的损失函数依然为平方损失函数:
J ( Θ ) = 1 2 m ∑ ( h Θ ( x ( i ) ) − y ( i ) ) 2 J(\Theta) = \frac{1}{2m}\sum(h_{\Theta }(x^{(i)}) - y^{(i)} )^{2} J(Θ)=2m1∑(hΘ(x(i))−y(i))2 (公式4.3)
依然采用梯度下降法来求最优解,只不过每次更新需要对所以未知参数 Θ i \Theta_{i} Θi(共n+1个)同时求偏导,并且同时更新,直到最优化为止。
Θ i : = Θ i − α δ δ Θ i J ( Θ ) = Θ j − 1 m ∑ ( h Θ ( x ( i ) ) − y ( i ) ) ∗ x j ( i ) \Theta _{i} := \Theta _{i} - \alpha \frac{\delta }{\delta \Theta _{i} } J(\Theta) =\Theta _{j} - \frac{1}{m}\sum (h_{\Theta }(x^{(i)}) -y^{(i)})*x^{(i)}_{j} Θi:=Θi−αδΘiδJ(Θ)=Θj−m1∑(hΘ(x(i))−y(i))∗xj(i) (公式4.4)
可见多元线性回归算法与单变量线性回归算法基本框架一致,只是随着特征数量的增加,拟合的难度增大了而言。
二,训练技巧
2.1 特征缩放 (Feature Scaling)
当特征数量增多时,不同的特征其取值范围可能存在很大的差异,而这种差异会使得模型拟合收敛缓慢。
通过特征缩放可解决这一难题,这里列举两种特征缩放技巧:
1.线性函数归一化,将特征的取值空间压缩至[0,1]之间,具体有
X
=
X
−
X
m
i
n
i
m
u
m
X
m
a
x
m
i
u
m
−
X
m
i
n
i
m
u
m
X = \frac{X- X_{minimum}}{X_{maxmium} - X_{minimum} }
X=Xmaxmium−XminimumX−Xminimum (公式4.5)
2.0均值归一化(Mean normalization),将特征值压缩到[-1,1]区间内,具体有:
X
=
X
−
X
m
e
a
n
X
v
a
r
i
a
n
c
e
X = \frac{X- X_{mean}}{X_{variance} }
X=XvarianceX−Xmean (公式4.6)
特征缩放只要将各个特征值的区间空间压缩到相近即可,不需要完全一致。
2.2 学习率
在单变量线性回归算法中介绍过学习率是代表的是梯度下降时相隔的步长。通过实验表明:
- 如果学习率过小,则会导致模型收敛缓慢
- 如果学习率过大,则损失函数可能不会在每次迭代后都会缩小,而会发生震荡
为了能很好的训练模型,建议采用不同的学习率对模型进行试验,最终寻找合适的学习率。例如0.001,0.003,0.005,0.01,0.03…按一定方法挑选学习率,选择使模型最优的。
2.3 特征选择与多项式回归
当样本具有众多特征时,我们可选择合适的特征来使用,而不一定只是线性叠加,具体有:
- 通过已知特征构建新特征,如已知房屋的长和宽,可构建其面积特征。还能构造多次项特征,这里不多赘述。
- 特征之间如果具有相关性,则可将减去相关特征,只留取线性无关的特征进行拟合。
通过构建更加强大的特征,例如多项式,特征相乘等,可以得到更强大的多项式回归模型(Polynomial Regression)。
三,正规方程法(Normal Equation)
3.1 方法推导
利用线性代数的知识,可以直接通过数值计算的方法求解参数的解析解。具体有,若参数向量
Θ
\Theta
Θ即为需要求解的参数向量,则必满足:
X
∗
Θ
=
Y
X*\Theta=Y
X∗Θ=Y
X
T
X
Θ
=
X
T
Y
X^{T}X\Theta=X^{T}Y
XTXΘ=XTY
若
X
T
X
X^TX
XTX可逆,则有:
Θ
=
(
X
T
X
)
−
1
X
T
Y
\Theta=(X^{T}X)^{-1}X^{T}Y
Θ=(XTX)−1XTY (公式4.7)
3.2 适用范围
在以下情况中,正规方程法不太适用:
- 参数之间有相关性
- 样本的特征数大于样本个数
这两种情况下, X T X X^TX XTX均不可逆,不能使用该方法。
当然,亦可采用特定方法使得方法适用: - 检查特征,删去有相关性的特征
- 删去部分特征,使得特征数小于样本数
- 正则化
3.3 梯度下降法与正规方程法对比
表 4-2 梯度下降法VS正规方程法
梯度下降法 | 正规方程法 |
---|---|
需要选择学习率 | 不需要选择学习率 |
需要多次迭代 | 不需要多次迭代 |
在样本数众多时,效果很好 | 需要通过复杂计算,算出逆矩阵,在n很大时计算缓慢 |
四,总结
多元线性回归算法由于特征数量较多,所以可构建的假设函数以及求解方法也很多样。
本章的具体内容有:
- 改进单变量线性回归,推导出了多元线性回归模型。
- 讨论了一些训练模型的技巧,包含特征缩放以及学习率的选取。
- 提到了特征相关与特征选择的内容,通过构建更复杂的特征,可以得到更为强大的多项式回归模型。
- 提到了正规方程法,并就其与梯度下降法进行了比较,由此来介绍两者的具体运用场合。