博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mahout协同推荐简单实例
阅读量:6612 次
发布时间:2019-06-24

本文共 2533 字,大约阅读时间需要 8 分钟。

    上篇文章介绍了协同过滤的安装与配置,这篇找了几个协同过滤的简单例子,看一下

Mahout给我们提供的强大的协同过滤算法。需要新建一个基于Maven的工程,下面是

pom.xml需要导入的包。

4.0.0
mahouttest
mahouttest
0.0.1-SNAPSHOT
jar
mahouttest
http://maven.apache.org
UTF-8
junit
junit
4.8.1
test
org.apache.mahout
mahout-core
0.8-SNAPSHOT
jar
compile

  这里我们导入的是最新的Mahout包,需要在本地的maven库中安装好。

首先我们需要准备好测试的数据,我们就用《Mahout  in action》中的例子:

1,101,51,102,31,103,2.52,101,22,102,2.52,103,52,104,23,101,2.53,104,43,105,4.53,107,54,101,54,103,34,104,4.54,106,45,101,45,102,35,103,25,104,45,105,3.55,106,4

具体对应的关系图如下:

下面我们用Mahout中三种不同的推荐代码来执行以下刚才给出的数据,看看Mahout中的推荐接口是

如何使用的。

1. 基于用户的协同推荐的代码:

DataModel  model =new FileDataModel(new File("data/intro.csv"));UserSimilarity similarity =new PearsonCorrelationSimilarity(model);UserNeighborhood neighborhood =new NearestNUserNeighborhood(2,similarity,model);Recommender recommender= new GenericUserBasedRecommender(model,neighborhood,similarity);List
recommendations =recommender.recommend(1, 1);for(RecommendedItem recommendation :recommendations){ System.out.println(recommendation);}

执行后的结果是:RecommendedItem[item:104, value:4.257081]

2. 基于Item的协同过滤的代码:

DataModel  model =new FileDataModel(new File("data/intro.csv"));ItemSimilarity similarity =new PearsonCorrelationSimilarity(model);Recommender recommender= new GenericItemBasedRecommender(model,similarity);List
recommendations =recommender.recommend(1, 1);for(RecommendedItem recommendation :recommendations){ System.out.println(recommendation);}

执行后的结果是:RecommendedItem[item:104, value:5.0]

3. SlopeOne推荐算法

DataModel  model =new FileDataModel(new File("data/intro.csv"));Recommender recommender= new SlopeOneRecommender(model);List
recommendations =recommender.recommend(1, 1);for(RecommendedItem recommendation :recommendations){ System.out.println(recommendation);}

执行结果是:RecommendedItem[item:105, value:5.75]

转载于:https://www.cnblogs.com/cstar/archive/2012/12/17/2821316.html

你可能感兴趣的文章
利用spring-session实现session共享
查看>>
列举锁定十个发展方向
查看>>
QQ空间技术架构之深刻揭密
查看>>
shell 文件排序合并和分割
查看>>
Spring+ Spring cloud + SSO单点登录应用认证
查看>>
美国消费者协会称:83%路由器固件存在漏洞
查看>>
“多才多艺”的安卓***Rotexy已在3个月里发动7万多次***
查看>>
学习三十九
查看>>
【许晓笛】EOS 超级节点的五个使命
查看>>
Linux 的 rsync 远程同步工具
查看>>
2018-7-3
查看>>
centos7安装小结
查看>>
更换UPS蓄电池
查看>>
Bootstrap的一些笔记——modal
查看>>
Python二十九个常见的脚本汇总!
查看>>
AJPFX简述abstract class和interface的区别
查看>>
利用剪切板JS API优化输入框的粘贴体验
查看>>
黑马程序员——内部类
查看>>
AS3 类库资源
查看>>
OA系统
查看>>