推薦系統-03-簡單基於用戶的推薦
阿新 • • 發佈:2018-05-16
pub ood public trace print ner ktr sed user
下面是一個基本的JVAVA程序, RecommenderIntro.java
package xyz.pl8.recommenderintro; 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; import java.io.File; import java.util.List; public class RecommenderIntro { public static void main(String[] args){ try{ // intro.csv格式 userId,itemId,rating DataModel model = new FileDataModel(new File("/home/hadoop/intro.csv")); System.out.println(model); // 用戶相似度 UserSimilarity similarity = new PearsonCorrelationSimilarity(model); // K近鄰用戶 UserNeighborhood neighborhood = new NearestNUserNeighborhood(3, similarity, model ); // 基於用戶的推薦器 Recommender recommender = new GenericUserBasedRecommender(model, neighborhood, similarity); // 推薦物品 List<RecommendedItem> recommendedItems = recommender.recommend(2, 2); for (RecommendedItem item : recommendedItems){ System.out.println(item); } }catch (Exception e){ e.printStackTrace(); } } }
推薦系統-03-簡單基於用戶的推薦