在grouplens官网上下载数据集ml-10m。有1000万条记录。
使用其中的rating.dat数据集,打开它可以看到它的分隔符是::
mahout无法直接处理,但是mahout下面有一个定制的groupLensDataModel,它扩展了FileDataModel以读取这个文件。
代码如下:
public static void grouplensDataModel() throws IOException, TasteException
{
DataModel model = new GroupLensDataModel(new File("F:\\mahout\\grouplens\\ml-10m\\ml-10M100K\\ratings.dat"));
UserSimilarity similarity = new PearsonCorrelationSimilarity(model);
UserNeighborhood neighborhood = new NearestNUserNeighborhood(100, similarity, model);
Recommender recommender = new GenericUserBasedRecommender(model, neighborhood, similarity);
// LoadEvaluator.runLoad(recommender);
}
报错,out of memory
项目右击,run configuration-->arguments-->VM arguments
写上-Xmx512m,表示java虚拟机最大可用内存为512M。