對不起,如果這是一個noob問題,但我是MAHOUT的新手,我必須用MovieLens數據集做一些測試。我想知道是否可以使用u1base.csv訓練推薦人,並使用u1test.csv測試推薦人來確定精確度和召回率?用MAHOUT測試和訓練不同的數據集
我發現關於評估的例子,他們只是拖動數據,但我想用u1base來訓練和測試。
u1base.csv和u1test.csv具有相同的格式「UserId,Item,Rating」。
Java代碼,我有:
File userPreferencesFile = new File("u1base.csv");
File userTeste = new File("u1test.csv");
RandomUtils.useTestSeed();
DataModel dataModel = new FileDataModel(userPreferencesFile);
DataModel testModel = new FileDataModel(userTeste);
RecommenderIRStatsEvaluator recommenderEvaluator = new GenericRecommenderIRStatsEvaluator();
RecommenderBuilder recommenderBuilder = new RecommenderBuilder() {
@Override
public Recommender buildRecommender(DataModel dataModel) throws TasteException {
UserSimilarity userSimilarity = new PearsonCorrelationSimilarity(dataModel);
UserNeighborhood userNeighborhood = new NearestNUserNeighborhood(10, userSimilarity, dataModel);
return new GenericUserBasedRecommender(dataModel, userNeighborhood, userSimilarity);
}
};
IRStatistics statistics =
recommenderEvaluator.evaluate(
recommenderBuilder, null, dataModel, null, 2, GenericRecommenderIRStatsEvaluator.CHOOSE_THRESHOLD, 1.0);
System.out.format("The recommender precision is %f%n", statistics.getPrecision());
System.out.format("The recommender recall is %f%n", statistics.getRecall());
}
任何幫助將非常感激
對不起,我們不會爲這些信息提供指導。我一行一行地下載了mahout和調試過的所有源代碼。在我看來,這是瞭解任何框架內部的最佳方式。 我相信我們也可以通過調試瞭解上述問題的答案。 – Rajkumar
舉個例子,我把它作爲10,10是相關項目的數量,即getRelevantItemIds()方法的輸出,其取得基於數據模型的所有相關項目。 5是推薦人給出的建議。我們只會指定推薦人提取的最大推薦數。而且,評估者不用於生產。其目的是比較不同的推薦人,並選擇適合我們領域的最佳人選。一旦我們決定合適的推薦人,我們將在我們的應用程序中使用它。 – Rajkumar