返回介绍

Evaluator

发布于 2025-02-22 11:29:55 字数 1942 浏览 0 评论 0 收藏 0

RecommenderEvaluator 接口用于实现对特定算法的评估. 目前实现对于 ranking 的评估器有 AUC, AveragePrecision, AverageReciprocalHitRank, Diversity, HitRate, IdealDCG, Normalized, Precision, Recall, REciprocalRank 十类评估器. 对于 rating 实现评估器 MAE, MPE, MSE, RMSE 四类。

若在配置文件中不进行评估器的指定,最终评估时使用对应类型的全部评估器。

指定评估器的配置示例:

rating:

rec.recommender.isranking=false
rec.eval.enable=true
rec.eval.class=mse # if rating

ranking:

rec.recommender.isranking=true
rec.eval.enable=true
rec.eval.class=auc
rec.recommender.ranking.topn=10

不同评估器相应的简写见下表

Evaluatorconfiguration
AUCEvaluatorauc
AveragePrecisionEvaluatorap
AverageReciprocalHitRankEvaluatorarhr
DiversityEvaluatordiversity
HitRateEvaluatorhitrate
IdealDCGEvaluatoridcg
NormalizedDCGEvaluatorndcg
PrecisionEvaluatorprecision
RecallEvaluatorrecall
ReciprocalRankEvaluatorrr
MAEEvaluatormae
MPEEvaluatormpe
MSEEvaluatormse
RMSEEvaluatorrmse

注意,在评估器进行配置时,对于 rating 的算法如果配置 ranking 的评估期,可能最后也会生成结果,但是此评估结果不具有意义,亦无法与其他算法进行比较. 与 rating 相比,使用 ranking 算法还需要配置 rec.recommender.ranking.topn。

在使用 java 进行实现评估器时,评估器的实例作为 Recommender 类中 evaluate 方法的参数传入 Recommender 的对象中. 其中 Recommender 的对象可以为不同的推荐算法. 而 RecommenderEvaluator 的实例也可以使用不同的评估器. 在 Java 中也可以采用多种不同的评估器来对结果进行评估,只需生成相应的评估器即可. 示例代码如下:

RecommenderEvaluator evaluator = new MAEEvaluator();
double evalValue = recommender.evaluate(evaluator);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文