引言
在上一节中介绍了协同过滤的主要算法,并转载了其python的实现代码。自己也用java实现了,但是相比mahout效率还是比不上。下面是基于mahout实现的UserCF,ItemCF,SlopOne算法。
基于用户的推荐 UserCF
package com.datamine.CollaborativeFiltering;
import java.io.File;
import java.util.List;
import org.apache.mahout.cf.taste.impl.common.LongPrimitiveIterator;
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.GenericBooleanPrefUserBasedRecommender;
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.recommender.RecommendedItem;
import org.apache.mahout.cf.taste.recommender.Recommender;
import org.apache.mahout.cf.taste.similarity.UserSimilarity;
/**
* 基于用户的协同过滤
* 利用mahout 8.0
* @author Administrator
*
*/
public class UserCF {
final static int NEIGHBORHOOD_NUM = 3; //邻居数据
final static int RECOMMENDER_NUM = 7; //推荐物品数目
public static void main(String[] args)