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

最新文章

  1. iOS 自定义的CodeSnippets添加按下tab键切换到指定输入位置
  2. 又是一天String
  3. HTML5-属性
  4. tar.xz文件如何解压
  5. [Cocos2d-x For WP8]Layer 层
  6. (六)ICMP、ping
  7. iOS 键盘的隐藏
  8. The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation. 怎么解决
  9. XML读取两种方法
  10. ERP中的地区管理
  11. Java进阶(三十五)java int与integer的区别
  12. Linux常用总结
  13. 洛谷P1099 树网的核
  14. 在web.xml中配置Spring的application.xml
  15. P5157 [USACO18DEC]The Cow Gathering
  16. PODOFO编译
  17. PaddlePaddle tutorial
  18. mac 蓝牙开启调试模式
  19. scala try monad
  20. python 等比数列

热门文章

  1. C#中如何正确的操作字符串?
  2. 汤姆大叔的6道js题目
  3. Shortcut Collapse project or projects in the Solution Explorer Microsoft Visual Studio 2008
  4. supervisor进程管理
  5. Python 手册——解释器及其环境
  6. User Commands
  7. 安装python-MySQLdb 出现error: command 'gcc' failed with exit status 1的解决方法
  8. jsonp跨域问题记录
  9. 2016 年开发者应该掌握的十个 Postgres 技巧
  10. 初次踏上GUI编程之路(有点意思,详细介绍了菜鸟的学习之路)