mahout算法源码分析之Collaborative Filtering with ALS-WR (三)QR分解数据流(3)
Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit。
接上篇分析完new QRDecomposition(Ai)后,此篇分析new QRDecomposition(Ai).solve(Vi).viewColumn(0)的后面solve函数。
首先来明确几个变量:
Vi:
Vector uiOrmj = solver.solve(featureVectors, ratings, lambda, numFeatures);然后就可以继续分析了。
大概总结下吧:原来算法是这么让人想吐的。。。还有就是我原本以为算法的话,可以不用怎么懂,只用分析源码,知道数据流是怎么走的就ok了,然后我一直也是按照这种思路来的,但是今天发现这种思路不行了,面对比较复杂的算法还是应该先了解算法的大概思路才行,比如上面最后一个的for循环,其实就是对矩阵的一些操作,如果用上面的那样来显示,我们人回很快理解,但是放到java的源代码里面感觉操作好复杂了。这个就是java对矩阵的支持不足吧。还有就是我的线性代数学的真的不怎么样。。。最后就是getQ函数木有分析。。。
分享,成长,快乐
转载请注明blog地址:http://blog.csdn.net/fansy1990