这是我参与8月更文挑战的第13天,活动详情查看:8月更文挑战
简介 Multivariate linear regression
考虑一下之前的单变量线性回归,按照数学的说法,单变量线性回归是一元函数,那多变量线性回归就是多元函数。
之前我们举的例子是房屋面积及其对应的价格,拟合的曲线是已知房屋的面积对其价格进行预测。hθ(x)=θ0+θ1x,数学上一个标准的一元一次函数。而对于多变量线性回归,我们可以考虑影响房价的有多个因素,处理房屋大小还有楼层啊位置啊之类的……
如下给出一个例子,依旧是预测房屋价格:
Size (feet²) 210414161534852… Number of bedrooms 5332… Number of floors 1221… Age of home (years) 45403036… Price ($1000) 460232315178…
Notation:
- n = number of features
- 本例中n=4,有四个特点(面积、卧室数量、楼层、使用年数)
- 注意区分m和n,m指的是训练样本数,有几行数据就有几个训练样本
- x(i)=input(features)of ith training example
- 指第几个训练样本,通俗说就是第几行数据
- 比如x(2)指的就是x(2)=⎣⎡14163240⎦⎤,将其作为偶一个四维向量看待。
- xj(i)=value of feature j in ith training example
- 第i个训练样本中第j个特征量
- 比如x3(2)=2
预测函数
所以现在我们的预测函数也变为了多元函数。
Hypothesis:
hθ(x)=θ0+θ1x1+θ2x2+θ3x3+θ4x4
For convenience of notation, we always define x0=1。
简化以后可以写为hθ(x)=θ0x0+θ1x1+⋯+θnxn=θTx。对于这个预测函数,将其变量和系数都写成向量形式。
x=⎣⎡x0x1x2⋮xn⎦⎤∈Rn+1θ=⎣⎡θ0θ1θ2⋮θn⎦⎤∈Rn+1
多元梯度下降算法
有了单变量线性回归的基础,那就不一步一步啰嗦了,直接上公式。
Hypothesis:
hθ(x)=θTx=θ0x0+θ1x1+θ2x2+⋯+θnxn
Parameters:n+1-dimension vector
θ0,θ1,…,θn
Cost function:
J(θ0,θ1,…,θn)=2m1i=1∑m(hθ(x(i))−y(i))2
Gradient descent:
Repeat{
θj:=θj−α∂θj∂J(θ0,…,θn)
} (simultaneously update for every j=0,…,n )
简化为
Repeat{
θj:=θj−αm1i=1∑m(hθ(x(i))−y(i))xj(i)
} (simultaneously update for every j=0,…,n )
对于上边这个梯度下降展开来看:
θ0:=θ0−αm1∑i=1(hθ(x(i))−y(i))x0(i)θ1:=θ1−αm1∑i=1m(hθ(x(i))−y(i))x1(i)θ2:=θ2−αm1∑i=1m(hθ(x(i))−y(i))x2(i)
还记不记得单变量线性回归的简化后公式??长这样:
θ0:∂θ0∂J(θ0,θ1)θ1:∂θ1∂J(θ0,θ1)=m1i=1∑m(hθ(x(i))−y(i))=m1i=1∑m(hθ(x(i))−y(i))⋅x(i)
原文:梯度下降
对比之后发现多变量线性回归和单变量线性回归是完全一样的。
- 我们开头已经说了是令x0=1,所以对θ0来说是完全一样的。
- 剩余的对θi,只是因为多变量的缘故,所以给每个x多加了一个下标而已。
生活好艰辛,我好不想学习。