多变量的线性回归
多元线性回归:当假设函数有n个自变量时,令
x
0
=
1
x_0=1
x0=1,θ和x为
(
θ
0
,
θ
1
,
θ
2
,
.
.
.
,
θ
n
)
(θ_0,θ_1,θ_2,...,θ_n)
(θ0,θ1,θ2,...,θn)和
(
x
0
,
x
1
,
x
2
,
.
.
.
,
x
n
)
(x_0,x_1,x_2,...,x_n)
(x0,x1,x2,...,xn)两个n+1维向量,则假设函数即可简化如下图所示
之所以要加上一个
x
0
x_0
x0=1是为了让θ的转置和x两个向量可以相乘从而达到简写的目的。
一、多元梯度下降算法:
上次学习的梯度下降算法
当令多元梯度下降算法的n=2时:
由此可以看出,其实本质上是没有区别的,梯度下降算法不过就是多元梯度下降算法的n=1时的一个特例。
特征缩放:
一个问题有多个特征即变量时,如果可以确保这些特征都处在一个相近的范围,也就是说可以确保不同的变量都在一个区间内,这样梯度下降算法就可以快速收敛。为了达到这个目的,可以使不符合条件的变量整体除以一个数(可以是最大值也可以是别的,只要最后让此变量符合条件即可):
也可以均值归一化进行特征缩放:
其中1000是size样本中的平均值,2000是size样本中的最大值-最小值;2是bedrooms样本中的平均值,5是bedrooms样本中的最大值-最小值。
特征缩放其实不需要太精确,只要让梯度下降更快即可。
区间只要接近(-1,1)即可,不能太小也不能太大。(0,3)可以,(-2,2)可以,(-100,100)不可以,(-0.0001,0.0001)不可以。不需要所有的变量都在一个区间只要相近就可以。比如 x 1 x_1 x1处于(0,3), x 2 x_2 x2处于(-3,3), x 3 x_3 x3处于(-0.5,0.5),这一组也是可以的。只要是接近的不差太远就行。
学习率:只要学习率足够小,每次迭代后代价函数都会下降。如果代价函数没有下降,可能是学习率太大。但如果学习率太小梯度下降算法收敛的会很慢,需要迭代很多次才能达到最低点。
特征和多项式回归:为了更好的拟合非线性数据/图像、选择合适更准确的特征,可以采用多项式回归去设定假设函数。
二、正规方程(Normal Equation)
除了一直进行迭代求得最小值外,也可以用正规方程求,正规方程可以一次性求解θ的最优值。不需要使用特征缩放。
如果
X
T
∗
X
X^T*X
XT∗X不可逆,先看看特征中是否有多余的,有就踢出去;如果还不行就使用正规化算法。
三、二者比较
(画删除线的是缺点)
梯度下降算法:
1. 需要选择学习率
2. 需要多次迭代
3. 在n非常大的时候运行效果不会受到影响
4. 还可以用于解决其他问题
正规方程:
1. 需要进行矩阵乘法计算、矩阵逆运算等
2. n非常大的时候运行很慢
3. 不需要选择学习率
4. 不需要进行多次迭代
5. 可能不可逆
6. 只能用于线性回归模型
进行逆运算的代价会随着n的增长变的很大,三次方增长。
所以当数据量过大时可以选择梯度下降算法,当数据量没那么大的时候可以使用正规方程。
需要了解或是回忆起的数学知识点:矩阵、向量(只有一列的矩阵)、标量乘法、向量乘法、矩阵乘法、逆和转置、求(偏)导、微积分等。