此时的代价函数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)这时候,解决的方法很简单,将每个特征的尺度缩小到-1至1之间,既:
xn=Xn−μnSn 其中 μn是平均值,Sn是标准差同单变量线性回归,我们要确保代价函数在一直减少,如果选取的 α 如果太大将有可能不会收敛,如果太小收敛太慢 α 可以选取0.001,0.3,0.1,0.3,1,3,10
线性回归并不适用所有的数据,例如有些数据需要的是曲线, 通常我们需要根据数据的特点选择回归方程,可能到二次方就结束,也可能需要开方
hθ(x)=θ0+θ1(x)+θ2x2 或是 hθ(x)=θ0+θ1(x)+θ2x√有时候,可以不通过梯度下降来求得,可以根据解下面的方程来得到:
∂∂θjJ(θj)=0 假设我们的训练集特征矩阵为X(包括 x0=1 ),训练结果为y,则 θ 的结果可以表示为: θ=(XTX)−1XTy e.g 例如我们有: 房间大小210414161534852卧室个数5332几层1221房龄45403036价格460232315178 用常规解方法求解: θ=⎛⎝⎜⎜⎜⎜⎜⎡⎣⎢⎢⎢⎢⎢12104514511415324011534323018522136⎤⎦⎥⎥⎥⎥⎥×⎡⎣⎢⎢⎢⎢11112104141615348525332122145403036⎤⎦⎥⎥⎥⎥⎞⎠⎟⎟⎟⎟⎟−1×⎡⎣⎢⎢⎢⎢⎢12104514511415324011534323018522136⎤⎦⎥⎥⎥⎥⎥×⎡⎣⎢⎢⎢⎢460232315178⎤⎦⎥⎥⎥⎥对于那些不可逆的矩阵,或者n值过大的时候,正规解方程的方法不可用。
下表列举了梯度下降和正规解方程的比较
梯度下降需要选择学习率α需要多次迭代特征数量n大时也能适用适用于各种类型模型正规解方程不需要选择一次可以算出n较大时计算时间太长只适用于线性模型