对MapReduce也用了一段时间,基本的数据处理都已比较熟悉,但目前用的S1的参数和直觉调的参数。这样下去不行啊,果断要开搞机器学习。虽然阿里给我们提供了Xlab,看起来也挺强大的,各种模型都很丰富,但作为一个不造轮子会死的程序猿,还是想实现自己的训练方法和模型,这也有利于后期的提高,所以就找了点资料研究了如何用MapReduce进行机器学习的训练。
MapReduce的入门,可以参考这个文章:http://www.yumumu.me/MapReduce_In_Odps/
本文主要参考了这篇论文Zinkevich1,并实现了一个线性回归的实例,实现很简单,主要想起到抛砖引玉的作用,欢迎大家一起讨论,提出更优的解决办法。
随机梯度下降法的(SGD)基本算法
SGD的基本算法如下:
Algorithm 1 SGD({c(1), . . . , c(m)}, T, η, w0)
for t = 1 to T do