创建输入

创建intro.csv文件,内容如下

1,101,5.0
1,102,3.0
1,103,2.52,101,2.0
2,102,2.5
2,103,5.0
2,104,2.03,101,2.5
3,104,4.0
3,105,4.5
3,107,5.04,101,5.0
4,103,3.0
4,104,4.5
4,106,4.05,101,4.0
5,102,3.0
5,103,2.0
5,104,4.0
5,105,3.5
5,106,4.0

创建推荐程序

由于项目在eclipse下,所以先获取项目额根目录String projectDir = System.getProperty("user.dir");

package com.xxx;import java.io.File;
import java.io.IOException;
import java.util.List;import org.apache.mahout.cf.taste.common.TasteException;
import org.apache.mahout.cf.taste.impl.model.file.FileDataModel;
import org.apache.mahout.cf.taste.impl.neighborhood.NearestNUserNeighborhood;
import org.apache.mahout.cf.taste.impl.recommender.GenericUserBasedRecommender;
import org.apache.mahout.cf.taste.impl.similarity.PearsonCorrelationSimilarity;
import org.apache.mahout.cf.taste.model.DataModel;
import org.apache.mahout.cf.taste.neighborhood.UserNeighborhood;
import org.apache.mahout.cf.taste.recommender.RecommendedItem;
import org.apache.mahout.cf.taste.recommender.Recommender;
import org.apache.mahout.cf.taste.similarity.UserSimilarity;/*** 简单的使用皮尔逊相关系数进行推荐* @author **/
public class RecommenderIntro {public static void main(String[] args) throws IOException, TasteException {String projectDir = System.getProperty("user.dir");DataModel model = new FileDataModel(new File(projectDir + "/src/main/intro.csv"));UserSimilarity similarity = new PearsonCorrelationSimilarity(model);UserNeighborhood neighborhood = new NearestNUserNeighborhood(2, similarity, model);Recommender recommender = new GenericUserBasedRecommender(model, neighborhood, similarity);List<RecommendedItem> recommendedItems = recommender.recommend(1, 1);for (RecommendedItem recommendedItem : recommendedItems) {System.out.println(recommendedItem);}}
}

推荐程序的步骤是:1,输入user-item矩阵数据 2,选择合适的相似度计算方法(程序中使用的是皮尔逊相关系数)3,构造N最近邻  4,根据邻居产生推荐结果

对应到mahout程序就是上述代码中写的。这个很简单,没毛病,下面是运行结果

转载于:https://www.cnblogs.com/ljdblog/p/6211260.html

Mahout实战---运行第一个推荐引擎相关推荐

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

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

  2. java mahout使用教程_Mahout Java推荐引擎(一)

    最近产品有一个需求是 给用户推荐 用户可能喜欢的东西 后来找到了Mahout这套引擎 这里主要记录一下 基于用户的协同过滤算法推荐引擎使用 基于用户的协同过滤算法 原理的话 网上有很多资料 这里就不详 ...

  3. 深度学习核心技术精讲100篇(七十七)-主流推荐引擎技术及优缺点分析

    前言 在本文中,将详细介绍多种类型的推荐系统,具体介绍基于近邻算法的推荐引擎.个性化推荐引擎.基于模型的推荐系统和混合推荐引擎等,并分析介绍每种推荐系统的优缺点. 主要介绍的不同类型的推荐系统包括: ...

  4. 推荐引擎:从搜索到发现

    搜索是你明确地知道自己要找什么东西时所做的事情,而发现是你并不明确地知道一些好东西存于世上的时候,这些东西主动找到了你.  以"发现"为主要功能的网站正如雨后春笋般在互联网上崭露头 ...

  5. 推荐引擎 - Summary Analysis

    什么是推荐引擎? 推荐引擎利用特殊的信息过滤(IF,Information Filtering)技术,将不同的内容(例如电影.音乐.书籍.新闻.图片.网页等)推荐给可能感兴趣的用户.通常情况下,推荐引 ...

  6. 基于内容推荐python_用 Python 实现一个简单的基于内容的推荐引擎

    原标题:用 Python 实现一个简单的基于内容的推荐引擎 (点击上方公众号,可快速关注) 英文:Chris Clark 译文:伯乐在线专栏作者 - yaoyujia 链接:http://python ...

  7. python推荐引擎_THUDataPITranslation

    用Python建立你的第一个推荐引擎 原文标题:Quick Guide to Build a Recommendation Engine in Python 作者: AARSHAY JAIN 翻译:张 ...

  8. 主流推荐引擎技术及优缺点分析

    本专转自:DataFunTalk 导读: 在本文中,将详细介绍多种类型的推荐系统,具体介绍基于近邻算法的推荐引擎.个性化推荐引擎.基于模型的推荐系统和混合推荐引擎等,并分析介绍每种推荐系统的优缺点. ...

  9. 基于 Apache Mahout 构建社会化推荐引擎

    http://www.ibm.com/developerworks/cn/java/j-lo-mahout/ Web 2.0 的一个核心思想就是"群体智慧",即基于大众行为,为每个 ...

最新文章

  1. 独家 | ​数据科学家必知的五大深度学习框架!(附插图)
  2. 查询x,y之间的素数
  3. javac,使用-d .与省略-d的区别
  4. 第二篇:Mysql---约束条件、修改表的结构、键值
  5. abstract类中不可以有private的成员_C++中public、protected、private的区别
  6. router vue 页签文字_vue-router实现tab标签页(单页面)详解
  7. 转:oracle常见重要视图-v$sql,v$sql_plan,v$sqltext,v$sqlarea,v$sql_plan_statistcs
  8. 13 Django组件- cookie与session
  9. CMake 安装与卸载
  10. 圆你的大厂梦!字节跳动Java高频面试题真题一二三面常见问题
  11. 微信开发者工具 ETIMEDOUT
  12. FPGA,关于安装使用libero IDE V9.2 及其gold floating license配置
  13. 【卫朋】智能硬件 | 做好一款电子硬件产品,工具必不可少
  14. Deep learning based multi-scale channel compression feature surface defect detection system
  15. java毕业设计——基于java+Java awt+swing的愤怒的小鸟游戏设计与实现(毕业论文+程序源码)——愤怒的小鸟游戏
  16. 人的大脑就是量子计算机吧,新发现!人类大脑其实就是台量子电脑
  17. 开源软件及国内发展趋势
  18. 【python爬虫实战】批量下载网站视频
  19. Vivado ILA Advanced Trigger的使用
  20. 微信小程序app.js调用wx.login

热门文章

  1. 计算机函授本科题库,计算机应用基础函授本科考试题库
  2. python不满足条件重新输入_在python里为何不满足while条件,while里语句却可以执行?...
  3. C++map容器遍历删除:cannot increment value-initialized map/set iterator
  4. java 继承和内部类_Java自学-接口与继承 内部类
  5. python续行_python中如何优雅续行和换行
  6. 华为鸿蒙全能家居,能兑现多少?华为智慧屏十年不过时,用鸿蒙理念做智能家居...
  7. 计算机数控系统的软件结构模式,第四章 计算机数控系统(CNC系统)
  8. java robot 文档_文件配置 · simple-robot 机器人开发者使用文档 · 看云
  9. linux嵌入式开发箱跑马灯,跑马灯实验(STM32F4开发板)
  10. php如何使用遮罩,CSS绝对定位实现窗口遮罩功能:2019年1月15日作业