3 多变量线性回归
3.1 多维特性 multiple features
- 至今为止,我们讨论的房价回归模型只有一个变量,面积,但实际情况往往不是如此,应有很多变量,例如卧室个数,几层等,我们把这些新的特征用
x1,x2,...xn
表示
房间大小210414161534852卧室个数5332几层1221房龄45403036价格460232315178
加入新的特征以后,我们用下列新的标识:
变量名nxixij变量代表意思特征数量第i个训练实例,包括多个特征,是一个向量,不再是一个数第i个训练实例的第j个特征,在特征矩阵中由第i行第j列标识
此时,假设h表示为:
hθ(x)=θ0x0+θ1x1+θ2x2+...+θnxn
其中 x0 为1,是人为加入的,使式子能够统一
可以用矩阵表示来简化结果:
hθ(x)=θTX
后面的 θ和X 都是矩阵, θ 是 1×(n+1) ,X是 m×(n+1) ( xi 是一维,X不是一维的)
3.2 多变量梯度下降
此时的代价函数J可以表示为:
J(θ0,θ1...θn)=12m∑i=1m(hθ·xi−yi)2
同单变量的算法,此时的算法为:
循环直到收敛:
θj=θj−α∂J(θ0,θ1...θn)∂θj
=θj−α∂∂θj12m∑i=1m(hθ(xi)−yi)2
=θj−α1m∑i=1m((hθ(xi)−yi)·xij)
3.3 特征缩放 feature scaling
- 当我们面对多维特征的时候,如果每个特征的单位尺度相差很大,那我们的算法也不能很好的收敛:
这时候,解决的方法很简单,将每个特征的尺度缩小到-1至1之间,既:
xn=Xn−μnSn
其中
μn是平均值,Sn是标准差
3.4 学习率 learning rate
同单变量线性回归,我们要确保代价函数在一直减少,如果选取的
α
如果太大将有可能不会收敛,如果太小收敛太慢
α
可以选取0.001,0.3,0.1,0.3,1,3,10
4 多项式回归与常规解方程
4.1 多项式回归
线性回归并不适用所有的数据,例如有些数据需要的是曲线,
通常我们需要根据数据的特点选择回归方程,可能到二次方就结束,也可能需要开方
hθ(x)=θ0+θ1(x)+θ2x2
或是
hθ(x)=θ0+θ1(x)+θ2x√
4.2 常规解方程
有时候,可以不通过梯度下降来求得,可以根据解下面的方程来得到:
∂∂θjJ(θj)=0
假设我们的训练集特征矩阵为X(包括 x0=1 ),训练结果为y,则 θ 的结果可以表示为:
θ=(XTX)−1XTy
e.g
例如我们有:
房间大小210414161534852卧室个数5332几层1221房龄45403036价格460232315178
用常规解方法求解:
θ=⎛⎝⎜⎜⎜⎜⎜⎡⎣⎢⎢⎢⎢⎢12104514511415324011534323018522136⎤⎦⎥⎥⎥⎥⎥×⎡⎣⎢⎢⎢⎢11112104141615348525332122145403036⎤⎦⎥⎥⎥⎥⎞⎠⎟⎟⎟⎟⎟−1×⎡⎣⎢⎢⎢⎢⎢12104514511415324011534323018522136⎤⎦⎥⎥⎥⎥⎥×⎡⎣⎢⎢⎢⎢460232315178⎤⎦⎥⎥⎥⎥
对于那些不可逆的矩阵,或者n值过大的时候,正规解方程的方法不可用。
下表列举了梯度下降和正规解方程的比较
梯度下降需要选择学习率α需要多次迭代特征数量n大时也能适用适用于各种类型模型正规解方程不需要选择一次可以算出n较大时计算时间太长只适用于线性模型