Mahout给我们提供的强大的协同过滤算法。需要新建一个基于Maven的工程,下面是
pom.xml需要导入的包。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
<project xmlns= "http://maven.apache.org/POM/4.0.0" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
<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. 基于用户的协同推荐的代码:
1
2
3
4
5
6
7
8
|
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的协同过滤的代码:
1
2
3
4
5
6
7
|
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推荐算法
1
2
3
4
5
6
|
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]
相关推荐
基于Mahout协同过滤实现图书推荐系统_书籍推荐系统源码+项目说明.zip 基于协同过滤的书籍推荐系统,图书推荐系统 最新版本,在原先手动计算皮尔逊相似度和评分矩阵的基础上添加了Mahout实现的协同过滤推荐算法. ...
基于Mahout实现协同过滤推荐算法的电影推荐系统
MovieRecommender基于Mahout实现协同过滤推荐算法的电影推荐系统^
项目概述:MovieRecommender是一个基于Mahout协同过滤算法构建的电影推荐系统。该项目主要以Java为开发语言,辅以JavaScript,共包含62个文件,其中包含16个Java类文件、6个JavaScript文件以及偏好设置、模型配置、...
#资源达人分享计划#
基于Java+Mahout的协同过滤推荐算法图书推荐系统源码+项目说明.zip 基于协同过滤的书籍推荐系统,图书推荐系统 最新版本,在原先手动计算皮尔逊相似度和评分矩阵的基础上添加了Mahout实现的协同过滤推荐算法。 ...
基于Mahout协同过滤实现图书推荐系统_书籍推荐系统_源码
Mahout:整体框架,实现了协同过滤 Deeplearning4j,构建VSM Jieba:分词,关键词提取 HanLP:分词,关键词提取 Spring Boot:提供API、ORM 关键实现 基于用户的协同过滤 直接调用Mahout相关接口即可 选择不同...
项目名称:MovieRecommender-1 - 基于Mahout的协同过滤电影推荐系统 技术栈:主要采用Java语言,辅助使用JavaScript 项目概览:本项目包含62个文件,涵盖多种类型,具体文件类型分布如下: - Java类文件:16个,...
本设计源码提供了一个基于Mahout的协同过滤电影推荐系统。项目包含62个文件,主要使用Java编程语言,并包含了JavaScript。文件类型包括16个Java字节码文件、16个Java源代码文件、6个JavaScript脚本文件、3个...
mahout关联推荐算法的介绍,例如PFPGrowth算法的参数使用介绍以及适用场景
本资源提供了一套基于Mahout的Java协同过滤电影推荐系统设计源码,包含62个文件,其中包括16个Java字节码文件,16个Java源代码文件,6个JavaScript脚本文件,3个Prefs文件,3个Manifest文件,3个Data文件,3个PNG...
Mahout实战案例-约会推荐系统,详情参考博客《Mahout案例实战--Dating Recommender 系统》http://blog.csdn.net/fansy1990/article/details/44181459
用R解析Mahout用户推荐协同过滤算法(UserCF) _ 粉丝日志_files
基于Mahout实现协同过滤推荐算法的电影推荐系统