从零开始学mahout(一)第一个recommender engine

来源:互联网 发布:php7论坛源码 编辑:程序博客网 时间:2024/05/22 05:06

ubuntu下,开发环境的搭建见之前:mahout建立 eclipse工程

最近准备集中精力学习以下mahout。参考书就是mahout in action。

书中做了一个概念介绍后,就让大家来体验以下recommender。建一个简单的recommender engine

创建一个文件。路径:/home/feng/intro.csv

内容如下:

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.5
3,102,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


数据的含义第一项是user id,第二项是item id,第三项是两者的喜好系数。

喜好系数1到5,5为最喜欢,1为不喜欢。


在mahout的mahout-example下创建java文件。包位置找一个:org.apache.mahout.cf.taste.example。

源代码

package org.apache.mahout.cf.taste.example;

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 RecommenderIntro {
    /**
     * @param args
     */
    public static void main(String[] args) throws Exception{
        // TODO Auto-generated method stub
        
        DataModel model =  new FileDataModel(new File("/home/feng/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);
        }
    }

}


运行run

执行后结果:RecommendedItem[item:104, value:4.257081]
原创粉丝点击