2012-07-13 150 views
0

我有一個表格,包含用戶的估計值。有大約1000個條目。從這些數據,我想建立一個建議,但返回一個空列表Mahout。可能是什麼問題?Mahout推薦人返回空結果

JDBCDataModel dataModel = new MySQLJDBCDataModel(source, "rate", "userId", "eventId", "rate", null); 

    dataModel.refresh(null); 

    try { 
     UserSimilarity userSimilarity = new PearsonCorrelationSimilarity(dataModel); 
     userSimilarity.setPreferenceInferrer(new AveragingPreferenceInferrer(dataModel)); 

     UserNeighborhood neighborhood = 
        new NearestNUserNeighborhood(10, userSimilarity, dataModel); 

     Recommender recommender = 
        new GenericUserBasedRecommender(dataModel, neighborhood, userSimilarity); 
     Recommender cachingRecommender = new CachingRecommender(recommender); 
     List<RecommendedItem> recommendations = 
        cachingRecommender.recommend(user.id, 10); 


    } catch (TasteException e) { 

     e.printStackTrace(); 
    } 

回答

7

這只是說沒有任何資格推薦。你的數據集很小,我覺得太稀疏了。 Pearson不適用於稀疏數據,因爲它很少計算任何相似性。