首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 服务器 > 云计算 >

mahout 推荐系统示范

2013-01-23 
mahout 推荐系统示例建立java工程,导入需要的jar包import java.io.*import java.util.*import org.apach

mahout 推荐系统示例

建立java工程,导入需要的jar包

mahout 推荐系统示范


import java.io.*;

import java.util.*;
import org.apache.mahout.cf.taste.impl.model.file.*;
import org.apache.mahout.cf.taste.impl.neighborhood.*;
import org.apache.mahout.cf.taste.impl.recommender.*;
import org.apache.mahout.cf.taste.impl.similarity.*;
import org.apache.mahout.cf.taste.model.*;
import org.apache.mahout.cf.taste.neighborhood.*;
import org.apache.mahout.cf.taste.recommender.*;
import org.apache.mahout.cf.taste.similarity.*;

public class TestMahout {
    // private TestMahout(){};

    public static void main(String args[]) throws Exception {
        // 1,构建模型
        DataModel dataModel = new FileDataModel(new File("d://test.txt"));
        // 2,计算相似度
        UserSimilarity userSimilarity = new PearsonCorrelationSimilarity(dataModel);
        // 3,查找k紧邻
        UserNeighborhood userNeighborhood = new NearestNUserNeighborhood(2,
                userSimilarity, dataModel);
        // 4,构造推荐引擎
        Recommender recommender = new GenericUserBasedRecommender(dataModel,
                userNeighborhood, userSimilarity);
        // 为用户i推荐两个Item
        for (int i = 1; i < 6; i++) {
            System.out.println("recommand  for user:" + i);
            List<RecommendedItem> recommendations = recommender.recommend(i, 2);
            for (RecommendedItem recommendation : recommendations) {
                System.out.println(recommendation);
            }
        }
    }

}

运行结果:

recommand  for user:1
RecommendedItem[item:104, value:4.257081]
RecommendedItem[item:106, value:4.0]
recommand  for user:2
recommand  for user:3
RecommendedItem[item:106, value:4.0]
RecommendedItem[item:103, value:2.5905366]
recommand  for user:4
RecommendedItem[item:102, value:3.0]
recommand  for user:5


热点排行