R的极客理想——高级开发篇 · 第八节
《R的极客理想——高级开发篇》第八节
本节先用R语言重写Mahout 0.5版本基于用户的协同过滤算法。
本节先用R语言重写Mahout 0.5版本基于用户的协同过滤算法。以21行的testCF.csv数据为例,先用Java调用Mahout API得到推荐结果,再按五步用R实现:读取数据建立用户物品矩阵、用欧氏距离计算用户相似度、按个数选出最近邻、基于用户的推荐算法计算、运行程序,结果与Java一致。作者指出协同过滤本质是矩阵变换,并说明Mahout对欧氏距离等基础算法做了改进优化,使用时需了解底层算法改动。
随后转入PageRank算法,介绍其由Google创始人提出,通过链接“投票”衡量网页重要性,基于数量假设和质量假设,提高PR值需关注反向链接数、来源页PR值及来源页链接数。算法建立在随机冲浪者模型上,具有PR值与重要性传递两大特性,计算公式含阻尼系数d=0.85。最后以4个页面的链接关系构造实例,开始构建数据模型和转移矩阵。