mahout算法源码分析之Itembased Collaborative Filtering(六)总结
来源:互联网 发布:青岛邮箱数据 编辑:程序博客网 时间:2024/05/22 06:40
Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit。
本篇是ItemBased Collaborative Filtering的算法综述,即总结前面几篇blog,分析该算法的数据流,主要使用的数据是《mahout in action》中的listing2.1的数据。
首先贴上下面的一个图:
看到上面的图片(这个算法计算到上图中的矩阵还没有结束,还有一个图,在下面分析),其实大概就可以了解到这个算法的数据流了。
1.首先根据原始数据得到userRatings和ItemRatings这两个步骤应该很好理解了(对应上图中的①②),然后第③步其实就是求ItemRatings中的所有项的平方和向量norms。第④步就是根据ItemRatings和norms求出项目之间的相似度矩阵similarity,这个计算过程也有点复杂,等下在后面分析;然后第⑤步就是根据userRatings和similarity整合用户所有信息,然后就是第⑥步,更加整合的信息求出最后的推荐信息,第六步如下图:
第六步也有点复杂,稍后分析。
2. 分析第四步,根据ItemRatings和Norms求出Similarity矩阵,这里使用的算法如下
比如102项目和103项目:102={5:3.0,2:2.5,1:3.0},103={5:2.0,4:3.0,2:5.0,1:2.5},可以得到dot=26,norms(102)=24.25,norms(103)=44.25,带入上面的公式,可以得到simi(102*103)=0.197,可见和上面的一样;
3. 分析第六步,更加第五步得到的用户整合信息进行分析,比如用户1来说:
- 1:
- {[3.0,[106:0.1497250646352768,105:0.14328432083129883,104:0.12789210677146912,103:0.19754962623119354,102:NaN,101:0.14201472699642181]],
- [2.5,[106:0.14243397116661072,105:0.11208890378475189,104:0.140376016497612,103:NaN,102:0.19754962623119354,101:0.15548737347126007]],
- [5.0,[107:0.10275248438119888,106:0.14243397116661072,105:0.11584573984146118,104:0.1601526141166687,103:0.15548737347126007,102:0.14201472699642181,101:NaN]]
- }
至此,这个算法系列算是完了,如果还有一些什么想法,后面再补充吧。
分享,成长,快乐
转载请注明blog地址:http://blog.csdn.net/fansy1990
- mahout算法源码分析之Itembased Collaborative Filtering(六)总结
- mahout算法源码分析之Itembased Collaborative Filtering实战
- Mahout协同过滤算法源码分析--Itembased Collaborative Filtering实战
- Mahout推荐算法之ItemBased
- mahout入门指南之基于mahout的itembased算法
- Collaborative Filtering算法
- Collaborative filtering 学习总结
- Slop One算法-Collaborative Filtering
- 论文总结Discrete collaborative filtering
- mahout源码分析之贝叶斯算法
- Mahout之k-means算法源码分析
- Mahout源码分析之DistributedLanczosSolver(7)--总结篇
- mahout的itembased推荐算法改造
- Mahout决策树算法源码分析(1)
- Mahout决策树算法源码分析(2)
- Mahout决策树算法源码分析(3)
- Mahout决策树算法源码分析(4)
- Mahout贝叶斯算法源码分析(1)
- oracle 利用存储过程为表动态建立索引
- Swift 之 枚举
- MyEclipse8.5快捷键总结(持续更新)
- iosui学习中的课堂笔记 UISegmentedControl。UISlider。UIStepper。UISwitch。
- Leetcode Reverse Words in a String
- mahout算法源码分析之Itembased Collaborative Filtering(六)总结
- 随机数是骗人的,.Net、Java、C为我作证
- 分布式消息系统Kafka初步
- Java线程阻塞中断和LockSupport的常见问题
- js全角字符转为半角大写
- QFile 总结
- Java_DOM解析XML
- 读书笔记 --- 定位(iBeacon)
- WiFi陪你看世界杯