如何仅使用部分数据来测试我的推荐人,请说:
user_id, item_id, feature
1, 1, 1
1, 2, 0
1, 3, 1
2, 1, 1
2, 2, 0
我想通过仅测试feature = 1的记录来获得精度。
我正在使用GenericRecommenderIRStatsEvaluator
-
RecommenderIRStatsEvaluator evaluator =
new GenericRecommenderIRStatsEvaluator();
IRStatistics stats = evaluator.evaluate(
recommenderBuilder, modelBuilder, model, null, 10,
GenericRecommenderIRStatsEvaluator.CHOOSE_THRESHOLD,
1.0);
System.out.println(stats.getPrecision())
我该怎么做?
答案 0 :(得分:1)
我不确定是否有自动方式执行此操作,但如果您想手动执行此操作
计算TP真阳性和FP误报所需的精度。
这是TP真阳性是正确的答案(特征= 1)
误报是您的推荐人检索到的错误答案(根据我的理解是功能= 0)
计算你计算的精度P = TP /(TP + FP); 这是您手动计算精度的方法
答案 1 :(得分:0)
如果您想将数据拆分为测试和训练并计算平均绝对差值,请参阅Mahout中的RecommenderEvaluator类。
此外,我已经回答了您的问题,以获得另一个线程中的精度和召回值。但是,我不相信精确度和召回价值将是强劲的业绩指标。