我正在使用 Apache Mahout 编写推荐系统评估器,使用 train.csv 训练集和 Precision 指标。我的问题是:可以使用不是由评估者生成的固定测试集吗?
更具体地说,我有一个 test.csv 文件,其中包含一个 UserIds 列表,对于这些我想提供建议并使用 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());