`
wbj0110
  • 浏览: 1598210 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Mahout协同推荐简单实例

阅读更多

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
  <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推荐算法实战

    3. **协同过滤**:详细解释协同过滤算法的原理和实现,包括用户-用户协同过滤和物品-物品协同过滤,并通过实例展示如何在Mahout中执行这些算法。 4. **基于内容的推荐**:介绍如何建立物品的内容模型,以及如何使用...

    mahout 实例

    《Mahout实例详解:开启机器学习与大数据之旅》 Apache Mahout是一个开源的机器学习库,基于Java语言,旨在提供可扩展的、分布式机器学习算法。它被广泛应用于大数据领域,尤其是推荐系统、分类和聚类分析。本文将...

    Mahout推荐算法API详解

    简单是因为Mahout完整地封装了“协同过滤”算法,并实现了并行化,提供非常简单的API接口;困难是因为我们不了解算法细节,很难去根据业务的场景进行算法配置和调优。本文将深入算法API去解释Mahout推荐算法底层的...

    大数据Mahout实践指南

    协同过滤是推荐系统的核心,用于根据用户的历史行为预测其可能的兴趣;聚类则是将相似数据分组,如K-means算法;分类和回归则用于预测离散或连续的目标变量,如朴素贝叶斯、决策树和线性回归等。每个算法都会通过...

    学习Mahout的第一个例子

    总结来说,“学习Mahout的第一个例子”是一个针对初学者的教程,它通过实例讲解了如何使用Apache Mahout进行机器学习任务,涵盖了从环境配置到模型评估的全过程。结合提供的“mahout-exam”文件,读者可以亲手实践,...

    Learning Apache Mahout

    - 推荐系统的构建:推荐系统是电子商务和内容推荐等领域常见的应用,Mahout中的协同过滤算法可以帮助开发者构建推荐系统。 - Mahout的扩展性:Mahout被设计成可以在Hadoop等分布式计算平台上运行,这使得它能够在...

    mahout-distribution-0.8-src

    1. **协同过滤(Collaborative Filtering)**:Mahout 提供了基于用户的协同过滤(User-Based Collaborative Filtering)和基于物品的协同过滤(Item-Based Collaborative Filtering)算法,用于推荐系统。...

    Mahout in action 实战中文版 高清 完整

    接下来,书中详细讲解了如何在Mahout中实施这些算法,如朴素贝叶斯分类器、K均值聚类和协同过滤推荐。 在Hadoop的支持下,Mahout能够处理海量数据。Hadoop是一个分布式计算框架,它允许数据在多台服务器上并行处理...

    mahout-0.3.tar

    1. **推荐系统**:Mahout提供了多种协同过滤算法,如User-Based和Item-Based,用于根据用户的历史行为预测他们可能感兴趣的新物品。这些算法在电商、媒体推荐等领域有着广泛的应用。 2. **分类算法**:包括朴素...

    mahout数据挖掘

    Mahout 支持非并行和基于 Hadoop 的并行推荐算法,其中非并行推荐算法包括: - **TasteUserCF**:基于用户的协同过滤。 - **ItemCF**:基于项目的协同过滤。 - **SlopeOne**:一种简单的预测算法。 而基于 Hadoop ...

    9.Hadoop入门进阶课程_第9周_Mahout介绍、安装与应用案例.pdf

    Mahout安装完成后,可以通过几个简单的测试例子来熟悉其基本用法,例如: 1. **运行K-Means聚类**:通过加载数据集并运行K-Means算法来进行聚类分析。 2. **实现协同过滤推荐**:使用电影评分数据集,通过Mahout的...

    grab, 基于spark、mahout和spring boot构建的推荐系统.zip

    在推荐系统中,Mahout提供了多种推荐算法,如基于用户的协同过滤(User-Based Collaborative Filtering)和基于物品的协同过滤(Item-Based Collaborative Filtering),以及矩阵分解方法如SVD(奇异值分解)。...

    recommender:SpringBoot + Apache Mahout 推荐引擎 基于用户评分数据推荐相关电影

    总的来说,这个项目提供了一个实践性的例子,展示了如何将SpringBoot的便捷性和Apache Mahout的推荐算法能力结合,以解决实际的推荐问题。对于想要学习推荐系统、SpringBoot或者Apache Mahout的开发者来说,这是一个...

    Mahout in action(适合mahout初学者,英文pdf,易懂)

    Mahout 的算法实现基于“机器学习”或“群体智能”,它包括推荐系统中的协同过滤算法、聚类算法以及分类算法。它使用Java编写,并且部分构建在Apache Hadoop分布式计算框架之上。Mahout本身不提供用户界面、预装的...

    mahout-distribution-0.5.tar.gz + 源码

    1. **推荐系统**:Mahout提供了多种协同过滤算法,如User-Based和Item-Based推荐,用于根据用户的历史行为预测他们可能感兴趣的新项目。这些算法在电商、媒体流服务等领域有广泛应用。 2. **分类与回归**:包括朴素...

    spring-mahout-demo

    Spring框架的模块化设计使得添加新功能变得简单,通过引入Mahout的相关依赖,可以在Spring应用中直接调用Mahout的算法。这为我们提供了一个清晰的学习路径,了解如何在实际项目中利用Mahout进行数据挖掘。 在项目中...

    Mahout in Action 最新版+完整版

    Making recommendations**:重点介绍Mahout提供的各种推荐算法,如基于用户的协同过滤、基于物品的协同过滤、矩阵分解方法等,并通过实际例子演示如何使用这些算法。 - **5. Taking recommenders to production**:...

Global site tag (gtag.js) - Google Analytics