Mahout协同过滤算法源码分析(5)--拓展篇
来源:互联网 发布:污水厂化验数据日报表 编辑:程序博客网 时间:2024/05/18 01:12
Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit。
额,好吧,心头的一块石头总算是放下了。关于Collaborative Filtering with ALS-WR这个算法中的那个QR分析,真心是太复杂了。以至于国庆后面三天基本都是在郁闷中过来的,想着自己的矩阵学的是有多差呀。。。后来算法验证弄懂之后才发觉,尼玛,java太坑爹了吧,矩阵求个逆,有那么复杂么!!!
下面来开始验证:首先应该获得了两个变量分别是Ai和Vi,如果这两个变量不知道是啥东西,可以看参考:mahout算法源码分析之Collaborative Filtering with ALS-WR (三)QR分解数据流(1)。然后重点验证的是什么呢?就是matlab代码说这个Collaborative Filtering with ALS-WR算法是使用Ai\Vi得到的,但是mahout中的源码中实现的太过于复杂了,我又不知道他是不是用的matlab一样的算法(官网说确实是参考这个算法的),所以采用的方式就是,我直接算一遍使用Ai的逆矩阵来和Vi乘积得到一个向量,然后使用mahout中的算法来跑一遍同样的数据,看两个结果是否一样。
其中mahout中的算法已经跑出结果出来了,可以在前面几篇blog中看到,下面还是贴出来吧:
Ai:
[[31.678402777777777, 4.08661209859189, 4.573918596524476],[4.08661209859189, 1.0203966547288652, 0.3987296589988406],[4.573918596524476, 0.3987296589988406, 1.059026647737198]]Vi:
[[34.8125],[5.235105578655231],[4.549926969654448]]然后mahout中求得最后的结果是:
[[1.0168655785532088],[1.2842501029087856],[-0.579024160693177]]下面先求Ai的逆矩阵(这个可以在matlab中使用inv函数直接求得即可):
0.1818 -0.4940 -0.5993 -0.4940 2.4914 1.1958 -0.5993 1.1958 3.0826然后使用这个逆矩阵和Vi相乘得到:
结果一模一样的,有木有!!!
分享,成长,快乐
转载请注明blog地址:http://blog.csdn.net/fansy1990
- Mahout协同过滤算法源码分析(5)--拓展篇
- Mahout协同过滤算法源码分析(1)
- Mahout协同过滤算法源码分析(3)--parallelALS
- Mahout协同过滤算法源码分析(6)--并行思路
- Mahout基于项目的协同过滤算法源码分析(5)--推荐
- Mahout协同过滤算法源码分析--Itembased Collaborative Filtering实战
- Mahout协同过滤算法源码分析(2)--splitDataset 和parallelALS
- Mahout协同过滤算法源码分析(3-1)--QR分解数据流
- Mahout协同过滤算法源码分析(3-2)--QR分解数据流
- Mahout协同过滤算法源码分析(3-3)QR分解数据流
- Mahout协同过滤算法源码分析(4)--评价和推荐
- Mahout基于项目的协同过滤算法源码分析(1)--PreparePreferenceMatrixJob
- Mahout基于项目的协同过滤算法源码分析(2)--RowSimilarityJob
- Mahout基于项目的协同过滤算法源码分析(3)--RowSimilarityJob
- Mahout基于项目的协同过滤算法源码分析(4)共生矩阵乘法
- Mahout基于项目的协同过滤算法源码分析(6)--总结
- Mahout 协同过滤 itemBase RecommenderJob源码分析
- Mahout 协同过滤 itemBase RecommenderJob源码分析
- android AIDL 小结
- 真机上的App如何抓包
- c语言学习笔记-字符
- color belended layers
- 已知前序中序序列,求后序遍历序列
- Mahout协同过滤算法源码分析(5)--拓展篇
- Linux C线程的使用
- SAP ERP 常用数据表
- android 中调用 so 动态链接库
- CentOS6.4升级python2.6.6到3.3.0
- Oracle中trunc函数、round 函数、ceil函数和floor函数的使用
- [MATLAB技术贴]漫谈MATLAB矩阵转置
- DOM
- VB.NET超链接实现