前提提要:
因为某天回顾“最简单”的“随机梯度下降算法”时死活想不出它的数学公式
Loop{
for i=1 to m, {
θj :=θj +α(y(i) - hθ(x(i)))xj(i)
}
}
就去翻自己的总结,但想想每次都要翻一遍长长的总结顿时一股无力感油然而生,于是在想:我为什么做一份“最简单”的总结呢?
因此就开始写“最简总结系列”。
所以,注意:该总结是我尝试用我做能理解的最少语言来对本章节的算法进行最大限度的浓缩!所以里面不会对算法的原理多做解释,甚至没有任何解释,因此若你看不懂的话,可以去看看我总结的关于本章节算法的文章。
梯度计算
批量梯度下降算法
随机梯度下降算法
代码
这里data是一个类似下图这样的矩阵
1 x01 x02 ... x0n y0
1 x11 x12 ... x1n y1
...
1 xm1 xm2 ... xmn ym
在for循环的 theta 一行是进行梯度下降,不过这里对参数theta加了个正则项。(这个我已在 回归 - 线性回归、θ正则、伪逆 的“线性回归的复杂度惩罚因子”中做了解释)