train.csv トレーニング セットと Precision メトリックを使用して、Apache Mahout でレコメンダー システム エバリュエーターを作成しています。私の質問は、エバリュエーターによって生成されたものではなく、固定されたテスト セットを使用することは可能ですか?
より具体的には、UserId のリストを含む test.csv ファイルがあり、これらに対して推奨事項を提供し、Precision メトリックで結果を評価したいと考えています。これは、変更されることのないこの固定されたユーザー セットに対してのみです。彼らの評価はファイル train.csv にあり、私はそれを使用してアルゴリズムをトレーニングし、他のすべてのユーザーの評価も含まれています。
この機能を追加したいコードも投稿します。
RandomUtils.useTestSeed();
DataModel model = new FileDataModel(new File("files/train.csv"));
RecommenderIRStatsEvaluator evaluator = new GenericRecommenderIRStatsEvaluator();
RecommenderBuilder recommenderBuilder = new RecommenderBuilder() {
public Recommender buildRecommender(DataModel model) throws TasteException {
//Here I build my recommender system
//return ...
}
};
IRStatistics stats = evaluator.evaluate(recommenderBuilder, null, model, null, 5,
4/*relevance Threshold*/, 1);
System.out.println(stats.getPrecision());