码迷,mamicode.com
首页 > 编程语言 > 详细

推荐引擎之Mahout 基于用户协同过滤算法的使用

时间:2015-05-18 21:13:45      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:协同过滤算法   推荐引擎   mahout   

本文目的: 介绍一种常见推荐算法(用户协同过滤)的使用。

应用场景: XXX项目运行一段时间后,系统中将会存在很多视频信息, 而通常 APP 给用户推送的消息(1-3条/每天),

那么这就需要我们根据用户的行为特征,进行更为有效的推送。

工具介绍:mahout 协同过滤算法的使用

测试代码:

/**
 * 
 * 基于用户近邻协同过滤推荐算法,
 * 本文目的:针对xxx后续广告推荐算法,提供一些算法模型的参考
 * 
 * @版权所有:来谊金融 版权所有 (c) 2015
 * @author feihu.wang
 * @version Revision 1.0.0
 * @see:
 * @创建日期:2015年5月18日
 * @功能说明:
 *
 */
public class CfTest {
    public static void main(String[] args) throws IOException, TasteException {  
        
        DataModel model = new FileDataModel(new File("E:\\projects\\code\\mahout_test\\intro.csv"));  
        
        //用户相识度 :皮尔森相关性近视度
        //UserSimilarity sim = new PearsonCorrelationSimilarity(model);
        
        //用户相识度 :欧式距离
        UserSimilarity sim = new EuclideanDistanceSimilarity(model);
        
        // 最近邻算法
        UserNeighborhood nbh = new NearestNUserNeighborhood(2, sim, model);  
          
        // 生成推荐引擎  : 基于用户的协同过滤算法, 
        //还有基于物品的过滤算法,mahout 下面已经有很多实现
        Recommender rec = new GenericUserBasedRecommender(model, nbh, sim);  
          
        // 为用户ID(1)推荐物品(数量2个)  
        List<RecommendedItem> recItemList = rec.recommend(1, 2);  
          
        for(RecommendedItem item : recItemList) {  
            System.out.println(item);  
        }  
          
    }

测试数据:

intro.csv

 

pom 依赖:

<dependency>
<groupId>org.apache.mahout</groupId>
<artifactId>mahout-core</artifactId>
<version>0.9</version>
</dependency>
<dependency>
<groupId>org.apache.mahout</groupId>
<artifactId>mahout-math</artifactId>
<version>0.9</version>
</dependency>


本文出自 “流浪的脚步” 博客,谢绝转载!

推荐引擎之Mahout 基于用户协同过滤算法的使用

标签:协同过滤算法   推荐引擎   mahout   

原文地址:http://now51jq.blog.51cto.com/3474143/1652239

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!