如何让Mahout中的数据更快?

时间:2018-01-16 13:47:02

标签: java mongodb mahout-recommender

我正在使用mahout在java中创建推荐器。该建议工作正常,但这一行List<RecommendedItem> recommendations = recommender.recommend(id, 20);花了我大约1,7秒。我有大约822个用户和各种产品约677.000分。有一种方法可以解决这个问题,或者将数据存储得更有效吗?

public class App {
public static void main(String[] args) throws Exception {
    DataModel model = new FileDataModel(new File("data/data.csv"));
    UserSimilarity similarity = new PearsonCorrelationSimilarity(model);
    UserNeighborhood neighborhood = new ThresholdUserNeighborhood(0.1, similarity, model);
    UserBasedRecommender recommender = new GenericUserBasedRecommender(model, neighborhood, similarity);
    Mongo m = new Mongo();
    LongPrimitiveIterator ids = model.getUserIDs();
    while(ids.hasNext()) {

        Long id = ids.next();
        Document recs = new Document();
        long tempoInicio = System.currentTimeMillis();
        List<RecommendedItem> recommendations = recommender.recommend(id, 20);
        System.out.println("Time: "+(System.currentTimeMillis()-tempoInicio));
        for (RecommendedItem recommendation : recommendations) {
            Long item = recommendation.getItemID();
            Float value = recommendation.getValue();
            recs.append(item.toString(),new Document("result",value));
        }
        m.insere(new Document("uid",id.intValue()).append("recs",recs),id.intValue());
    }
}
}

0 个答案:

没有答案