mahout0.11 taste框架推荐引擎api

所需jar包

数据格式以逗号分隔

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

基于用户推荐

import java.io.File;
import java.util.List;

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;

public class UserItemRecommend {
public static void main(String[] args) throws Exception{
    //创建数据模型
    DataModel dm = new FileDataModel(new File("C:/test.txt"));
    //使用user来推荐,计算相似度
    UserSimilarity us=new PearsonCorrelationSimilarity(dm);
    //查找K(3)近邻
    UserNeighborhood unb=new NearestNUserNeighborhood(3, us, dm);
 //构造推荐引擎
    Recommender re =new GenericUserBasedRecommender(dm, unb, us);
//显示推荐结果,为1号用户推荐两个商品
    List<RecommendedItem> list = re.recommend(1, 2);
    for(RecommendedItem recommendedItem :list)
    {
        System.out.println(recommendedItem);
    }
}
    
}

推荐结果

RecommendedItem[item:104, value:4.257081]
RecommendedItem[item:106, value:4.0]

基于商品

import java.io.File;
import java.util.List;

import org.apache.mahout.cf.taste.impl.model.file.FileDataModel;
import org.apache.mahout.cf.taste.impl.recommender.GenericItemBasedRecommender;
import org.apache.mahout.cf.taste.impl.similarity.PearsonCorrelationSimilarity;
import org.apache.mahout.cf.taste.model.DataModel;
import org.apache.mahout.cf.taste.recommender.RecommendedItem;
import org.apache.mahout.cf.taste.recommender.Recommender;
import org.apache.mahout.cf.taste.similarity.ItemSimilarity;

public class ItemUserRecommend {
public static void main(String[] args) throws Exception{
    //创建数据模型
    DataModel dm = new FileDataModel(new File("C:/test.txt"));

    ItemSimilarity is=new PearsonCorrelationSimilarity(dm);
    
 //构造推荐引擎
    Recommender re =new GenericItemBasedRecommender(dm,is);
//显示推荐结果,为1号用户推荐两个商品
    List<RecommendedItem> list = re.recommend(1, 2);
    for(RecommendedItem recommendedItem :list)
    {
        System.out.println(recommendedItem);
    }
}
    
}

slopeone算法,0.9版本已移除,要使用只能用0.8

import java.io.File;
import java.util.List;

import org.apache.mahout.cf.taste.impl.model.file.FileDataModel;
import org.apache.mahout.cf.taste.impl.recommender.GenericItemBasedRecommender;
import org.apache.mahout.cf.taste.impl.similarity.PearsonCorrelationSimilarity;
import org.apache.mahout.cf.taste.model.DataModel;
import org.apache.mahout.cf.taste.recommender.RecommendedItem;
import org.apache.mahout.cf.taste.recommender.Recommender;
import org.apache.mahout.cf.taste.similarity.ItemSimilarity;

public class SlopeOneRecommend {
public static void main(String[] args) throws Exception{
    //创建数据模型
    DataModel dm = new FileDataModel(new File("C:/test.txt"));

    
    
 //构造推荐引擎
    Recommender re =new SlopeOneRecommender(dm);;
//显示推荐结果,为1号用户推荐两个商品
    List<RecommendedItem> list = re.recommend(1, 2);
    for(RecommendedItem recommendedItem :list)
    {
        System.out.println(recommendedItem);
    }
}
    
}

本文出自 “点滴积累” 博客,请务必保留此出处http://tianxingzhe.blog.51cto.com/3390077/1713455

时间: 2024-09-17 03:05:17

mahout0.11 taste框架推荐引擎api的相关文章

探究推荐引擎瞬间被“秒”背后:究竟是什么让用户接踵而至?

6月16日,阿里云技术专家郑重(卢梭)将做客,直播分享<技术实战:21天搭建推荐系统>,报名地址:https://yq.aliyun.com/webinar/join/14 推荐引擎官网 "我是做电商CRM的,市场中有非常多的CRM在相互竞争,必须要找到一个能让自己的产品区别于竞争对手,甚至优于对手的核心能力.现在产品的未来都压在推荐引擎上,我需要你们帮助定制出这项能力."一位企业的负责人如此坦言. 5月18日上午11点,推荐引擎新版上线,在限量提供折扣抢购后,所有的产品瞬

Spark机器学习3·推荐引擎(spark-shell)

Spark机器学习 准备环境 jblashttps://gcc.gnu.org/wiki/GFortranBinaries#MacOS org.jblas:jblas:1.2.4-SNAPSHOT git clone https://github.com/mikiobraun/jblas.git cd jblas mvn install 运行环境 cd /Users/erichan/Garden/spark-1.5.1-bin-cdh4 bin/spark-shell --name my_mli

Spark机器学习之推荐引擎

Spark机器学习之推荐引擎 一. 最小二乘法建立模型 关于最小二乘法矩阵分解,我们可以参阅: 一.矩阵分解模型. 用户对物品的打分行为可以表示成一个评分矩阵A(m*n),表示m个用户对n各物品的打分情况.如下图所示: 其中,A(i,j)表示用户user i对物品item j的打分.但是,ALS 的核心就是下面这个假设:的打分矩阵 A 可以用两个小矩阵和的乘积来近似:.这样我们就把整个系统的自由度从一下降到了.我们接下来就聊聊为什么 ALS 的低秩假设是合理的.世上万千事物,人们的喜好各不相同.

推荐引擎在线培训视频汇总

[第一堂培训视频]3月10日个性化推荐产品基本操作 请快进到30分钟后观看视频地址:http://etaop4p.gensee.com/webcast/site/vod/play-0b5c643bd10245b5bb18c0fd8273e10c   [第二堂培训视频]3月21日大数据开发(数据开发+数据上传+任务调度) 请大家快进30分钟,查看视频快进到1小时32分,是数据上传DataX的介绍视频地址:http://etaop4p.gensee.com/webcast/site/vod/play

谷歌旗下电商网站无奈关闭 推荐引擎技术能力是关键

中介交易 SEO诊断 淘宝客 云主机 技术大厅 9月22日,谷歌宣布关闭开放不到一年的电子商务导购网站Boutiques.com,并将其整合入谷歌产品搜索服务. 据了解,Boutiques.com是谷歌于2010年11月推出的个性化时尚服饰购物网站,初衷是希望将其搜索功能的优势应用于购物导航网站,利用计算机视觉及其学习技术对用户品味进行分析,根据用户填写的基本要求,比如款式.颜色.风格.价格等分析用户喜好,然后推荐相关产品.个性化选择和社交化的推荐也是该网站期待形成的特色.然而,运行一年以来,很

新闻外衣的推荐引擎:今日头条的价值在哪里?

资讯类APP"今日头条"今日确认获得1亿美元的C轮融资,估值超过5亿美元.据了解,此轮融资由红杉资本和新浪微博领投.此前"今日头条"已经进行过两轮融资,2012年7月获得SIG海纳亚洲等数百万美元A轮投资,2013年9月获得DST等数千万美元B轮投资.自2012年8月份上线以来,今日头条已经累计用户超过1.2亿. 一支没有任何新闻门户基因的创业团队,却做出了一款用户规模近1亿的热门新闻客户端产品,这听上去有些不可以思议,但它的确发生了. 在2013年的新闻客户端大战

谷歌前工程师推团购聚合与推荐引擎网站

腾讯科技讯(小贝)北京时间3月27日消息,据国外媒体报道,两名前谷歌工程师创建了一个团购交易聚合与推荐引擎网站Dealupa,利用谷歌的PageRank搜索排名算法,为用户提供质量更高.更加相关的团购交易.随着大量团购网站的出现,同时也出现了很多团购交易聚合网站,将不同的团购交易整合到 同一个网站上.然而,这些聚合网站并没有为用户提供更合适的选择,反而制造了更多的麻烦.越来越多的团购交易出现,需要有更出色的过渡技术和更优秀的推荐引擎.Dealupa就是在这种背景下面世的.由两名前谷歌工程师桑杰·

2014年最火的Node.JS后端框架推荐_node.js

Node.js框架是可以帮助你建立网站应用服务的javascript框架.它可以帮助你更快地开发Web应用 Node.js 是基于Chrome的JavaScript运行环境.可方便地构建快速.可扩展的网络应用.节点. 当涉及到Web应用程序的开发,你就需要JS框架,加快你的开发过程. Node.js有非常多不同类型的框架,如MVC框架,REST API和generators,全栈框架,大量的服务器库,它完全能够提供Web服务,无需使用Apache等外部软件. Node.js使用谷歌的V8 Jav

使用 .NET 框架类替代 API 调用 (一)

使用 .NET 框架类替代 API 调用 升级到 Microsoft .NET Ken GetzMCW Technologies 2002 年 2 月 摘要:通过学习 Microsoft .NET 框架中某些特定而有用的类,可以减少您对 Win32 API 调用的依赖.本文讨论的每个类都可以代替一个或多个 Win32 API 调用,而在 Microsoft Visual Basic 6.0 中,您必须调用一个或多个 Win32 API 才能完成相同的任务. 目标 查找现有 Win32 API 调