mahout+eclipse推薦系統開發學習之helloworld

推薦入門--HelloWorld

    1·下載最新版本的mahout,本例使用0.9版本 下載地址 http://mirror.esocc.com/apache/mahout/0.9/
    2·新建一個普通的java項目,導入如下依賴包(全部依賴包都在mahout安裝目錄的lib文件夾下)
    
    3·新建如下java類:
package com.xinyuan.hello;

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.*;
import java.io.*;
import java.util.*;
public class RecommenderIntro {
	private RecommenderIntro(){};
	
	public static void main (String args[])throws Exception{
                // step:1 構建模型 2 計算類似度 3 查找k緊鄰 4 構造推薦引擎
		DataModel  model =new FileDataModel(new File(System.getProperty("user.dir")+"/data/hello.txt"));//文件名必定要是絕對路徑
		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, 2);//爲用戶1推薦兩個ItemID
		for(RecommendedItem recommendation :recommendations){
			System.out.println(recommendation);
		}
		
	}
}
    4·在項目目錄中添加數據文件hello.txt
1,101,5
1,102,3
1,103,2.5
2,101,2
2,102,2.5
2,103,5
2,104,2
3,101,2.5
3,104,4
3,105,4.5
3,107,5
4,101,5
4,103,3
4,104,4.5
4,106,4
5,101,4
5,102,3
5,103,2
5,104,4
5,105,3.5
5,106,4
    5·添加log4j的配置文件 log4j.properties
# Configure logging for testing: optionally with log file
log4j.rootLogger=WARN, stdout
# log4j.rootLogger=WARN, stdout, logfile

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spring.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
執行結果:
相關文章
相關標籤/搜索