Mahout推荐系统引擎RecommenderEvaluator源码解析

本文详细解析了Mahout推荐系统中RecommenderEvaluator的evaluate和splitOneUsersPrefs源码,介绍了评价器如何工作,包括训练集和测试集的划分,以及如何获取评价结果。通过对用户偏好数据的随机分割,根据训练和测试比例进行推荐器的评估,最终通过计算推荐值与实际值的差距来衡量推荐效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://blog.youkuaiyun.com/jianjian1992/article/details/47304337里边有关于推荐系统的完整代码,其中有一个评价器RecommenderEvaluator用来评价推荐器的好坏。

RecommenderEvaluator evalutor = new AverageAbsoluteDifferenceRecommenderEvaluator();
System.out.println("eval:"+ evalutor.evaluate(recommenderBuilder, null, model, 0.5, 1));

在源码中对它定义的evaluate函数介绍如下:

* Evaluates the quality of a {@link org.apache.mahout.cf.taste.recommender.Recommender}'s recommendations.
   * The range of values that may be returned depends on the implementation, but <em>lower</em> values must
   * mean better recommendations, with 0 being the lowest / best possible evaluation, meaning a perfect match.
   * This method does not accept a {@link org.apache.mahout.cf.taste.recommender.Recommender} directly, but
   * rather a {@link RecommenderBuilder} which can build the
   * {@link org.apache.mahout.cf.taste.recommender.Recommender} to test on top of a given {@link DataModel}.

    它是用来评价一个推荐器的质量的;
    它返回的值越小则代表推荐器推荐效果越好;
    评价方法并不直接接受一个推荐器作为参数,而是接受一个可以创建推荐器的推荐器创建方法来在给定的数据模型上进行测试;
* Implementations will take a certain percentage of the preferences supplied by the given {@link DataModel}
   * as "training data". This is typically most of the data, like 90%. This data is used to produce
   * recommendations, and the rest of the data is compared against estimated preference values 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值