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

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

pom.xml需要导入的包。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>mahouttest</groupId><artifactId>mahouttest</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>mahouttest</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.8.1</version><scope>test</scope></dependency><dependency><groupId>org.apache.mahout</groupId><artifactId>mahout-core</artifactId><version>0.8-SNAPSHOT</version><type>jar</type><scope>compile</scope></dependency></dependencies>

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

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

1,101,5
1,102,3
1,103,2.5
2,101,2
2,102,2.5
2,103,5
2,104,2
3,101,2.5
3,104,4
3,105,4.5
3,107,5
4,101,5
4,103,3
4,104,4.5
4,106,4
5,101,4
5,102,3
5,103,2
5,104,4
5,105,3.5
5,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<RecommendedItem> 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<RecommendedItem> 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<RecommendedItem> 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

Mahout协同推荐简单实例相关推荐

  1. python协同过滤调用包_简单的python协同过滤程序实例代码

    本文研究的主要是python协同过滤程序的相关内容,具体介绍如下. 关于协同过滤的一个最经典的例子就是看电影,有时候不知道哪一部电影是我们喜欢的或者评分比较高的,那么通常的做法就是问问周围的朋友,看看 ...

  2. 02 机器学习算法库Mahout - 协同过滤算法实现推荐功能

     (原文地址:http://blog.csdn.net/codemosi/article/category/2777041,转载麻烦带上原文地址.hadoop hive hbase mahout ...

  3. mahout+Eclipse,使用 Taste 构建推荐引擎实例 – 电影推荐引擎

    使用 Taste 构建推荐引擎实例 – 电影推荐引擎 根据上面的步骤,我们可以得到一个简单的推荐引擎 demo 环境,下面介绍如何使用 Taste 方便地构建自定义的推荐引擎. 抽取 Taste 工具 ...

  4. php简单实例,php实现推荐功能的简单实例

    php实现推荐功能的简单实例,魔法,标题,文章,简明扼要,数组 php实现推荐功能的简单实例 易采站长站,站长之家为您整理了php实现推荐功能的简单实例的相关内容. 利用similar_text将这些 ...

  5. 主要推荐系统算法总结及Youtube深度学习推荐算法实例概括

    主要推荐系统算法总结及Youtube深度学习推荐算法实例概括 By ZhuZhiboSmith2017年7月09日 17:00 现如今,许多公司使用大数据来做超级相关推荐,并以此来增加收益.在海量推荐 ...

  6. 推荐系统 Mahout入门之简单使用

    Mahout: Apache Mahout 是 Apache Software Foundation(ASF)旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快 ...

  7. 经典算法题每日演练——第六题 协同推荐SlopeOne 算法

    原文:经典算法题每日演练--第六题 协同推荐SlopeOne 算法 相信大家对如下的Category都很熟悉,很多网站都有类似如下的功能,"商品推荐","猜你喜欢&quo ...

  8. Mahout分布式推荐引擎介绍

    一直以为在Mahout的在分布式上做了很多东西,很高深.最近一段时间由于工作中要实现一些分布式算法,所以硬着头皮看了一下它的源码.当时我匆忙的看过KMeans的实现,这次我的工作是在搜索引擎日志记录中 ...

  9. ajax webservice 参数类型,JQuery Ajax WebService传递参数的简单实例

    Asp.NET中利用jQuery实现Ajax时,在服务器端可以使用aspx,ashx,以及WebService等方式.最近研究了一下WebService方式,jQuery Ajax 方法调用 jQue ...

最新文章

  1. WPF学习笔记——设置ListBox选中项的背景颜色
  2. mysql中文查询问题
  3. MKL25Z128 Cortex-M0微处理器架构定义的存储器映射
  4. Android开发人员资料大全(开发人员必看)
  5. mysql grant教程_MySQL如何使用授权命令grant
  6. 用 ABAP 读取本地文本文件内容
  7. 货车运输(洛谷P1967)(倍增)
  8. jquery-基础事件[下]
  9. 模型训练太慢?显存不够用?这个算法让你的GPU老树开新花
  10. php js特效代码如何用,phpstorm编写代码增加代码爆炸效果
  11. Eclipse统计代码行数
  12. 大数据分析平台建模及建议
  13. 用python调用r包
  14. 微信公众号模板消息推送,中文乱码
  15. APP支付如何对接合适的支付通道?
  16. 怎么查EI论文的检索号
  17. 化工原理 --- 流体流体 --- 习题课及复习
  18. 某一点绕另一点逆时针旋转90后的坐标
  19. 软考高级系统架构设计师系列论文七:论基于构件的软件开发
  20. 暑假集训总结——区间DP,堆的概念及应用,STL(vector、set、pair、map、priority_queue),hash表,树状数组,图论

热门文章

  1. html中js定义数组,javascript数组的定义及操作实例
  2. java 苹果vcf解析_VCF文件格式解析
  3. iOS中几种数据持久化方案总结
  4. PHP中htmlentities跟htmlspecialchars的区别
  5. php读取cookie文件,PHP读取CURL模拟登录时生成Cookie文件的方法,_PHP教程
  6. 打开共享文件闪退怎么解决_文件共享解决方案-随时随地共享同步访问文件
  7. 将毫秒转换_Matlab将Unix时间戳转为可读日期
  8. matlab与python 语言区别总结(1)_matlab与python 语言区别总结(1)
  9. mysql没有err文件_xampp中的mysql启动时无法产生err文件
  10. php 防止倒链,PHP防止图片倒链