我正在Mahout上發現一個問題,當我嘗試更改我的csv時,以前它給了我適當的建議。Mahout Recommender無法正常工作
示例代碼:
model = new FileDataModel(new File("E:\\WriteTest.csv"));
UserSimilarity similarity = new PearsonCorrelationSimilarity(model);
UserNeighborhood neighborhood = new NearestNUserNeighborhood(2,similarity,model);
Recommender recomender = new GenericUserBasedRecommender(model,neighborhood, similarity);
List<RecommendedItem> recommendations = recomender.recommend(1,1);
for(RecommendedItem recommendation: recommendations){
System.out.println(recommendation);
}
我剛剛更新了我的CSV的價值和它已經停止給我的建議。
CSV未給我任何結果:
1,13,9.9
1,26,9.0
1,40,4.0
2,83,9.9
2,167,9.0
2,250,4.0
3,91,9.9
3,167,9.0
3,274,4.0
4,91,9.9
4,167,2.0
CSV這是給我的結果是:
1,101,5.0
1,102,3.0
1,103,3.0
2,101,5.0
2,102,2.5
2,103,3.0
2,104,2.1
3,101,5.0
3,102,2.5
3,105,4.0
3,107,5.0
4,102,2.0
4,104,4.0
4,105,2.5
4,106,3.0
4,107,2.6
5,101,5.0
5,102,3.4
5,104,2.5
5,105,2.5
5,106,1.0
分別在控制檯輸出:
從1數據集八月結果27,2011 2:45:06 AM org.slf4j.impl.JCLLoggerAdapter信息:爲創建FileDataModelfile WriteTest.csv Aug 27,2011 2:45:06 AM org.slf4j.impl.JCLLoggerAdapter info INFO:Reading file info ... Aug 27,2011 2:45:06 AM org.slf4j.impl.JCLLoggerAdapter資訊信息: readlines方法:11 2011年8月27日上午02時45分06秒org.slf4j.impl.JCLLoggerAdapter 信息INFO:加工4個用戶
我期待貨號167,但din't找到任何推薦
輸出第二數據集:
Aug 27, 2011 2:52:42 AM org.slf4j.impl.JCLLoggerAdapter info
INFO: Creating FileDataModel for file WriteTest.csv
Aug 27, 2011 2:52:42 AM org.slf4j.impl.JCLLoggerAdapter info
INFO: Reading file info...
Aug 27, 2011 2:52:42 AM org.slf4j.impl.JCLLoggerAdapter info
INFO: Read lines: 21
Aug 27, 2011 2:52:42 AM org.slf4j.impl.JCLLoggerAdapter info
INFO: Processed 5 users
RecommendedItem[item:105, value:3.25]
(回答上面的評論。)你爲什麼認爲167是一個很好的建議?其他用戶對此評價很高,但他們可能喜歡與用戶喜歡的完全不同的東西。例如,可能13/26/40是古典音樂專輯,167是重金屬。沒有任何東西將用戶1鏈接到用戶2/3/4。據我們所知,他們有完全不相關的口味。不,167沒有一個好的答案,因爲沒有證據支持它。 –