【推荐系统】1. 模型评价指标

1. 指标介绍

评测推荐系统的好坏有多种指标,包括:用户满意度、预测准确度、覆盖率、多样性、新颖性、惊喜度、实时性、健壮性等等。

1.1 用户满意度:

该指标主要通过问卷调查获得。
在线系统中用户满意度主要通过对用户行为的统计得到比如:购买率、满意不满意反馈按钮、点击率、用户停留时间、转换率等等反馈获得。

1.2 预测准确度

预测准确度是离线评测中最重要的指标。
在对用户进行评分预测时,主要通过计算均方根误差RMSE或平均绝对误差MAE获得。
在TopN推荐时,主要通过召回率和精确率获得。

  • 召回率(Recall):召回率主要是针对样本而言,它表示样本中的正例有多少被正确预测了。召回率 = 推荐的正确信息条数 / 样本中喜欢的总信息条数。
  • 精确率(Precision):精确率主要针对我们预测结果而言的,它表示的是预测为正的样本中有多少是真正的正样本。精确率 = 推荐的正确信息条数 / 推荐的总信息条数

区别与准确率,准确率=(喜欢的推荐了+不喜欢的不推荐)/总样本
比如,总共100条信息,小明喜欢30条,推荐系统给他推荐20条,其中小明喜欢的有10条。
召回率:推荐列表中喜欢的10条/样本中总共喜欢的30条 = 0.3
精确率:推荐列表中喜欢的10条/推荐了20条 = 0.5
准确率:(推荐列表中喜欢的10条+没推荐列表中不喜欢的60条)/总信息数 = 0.7

1.3 覆盖率

描述推荐系统对物品长尾的挖掘能力。
最简单的定义为:推荐系统能够推荐出来的物品占总物品集合的比例。
也可以为:统计推荐列表中不同物品出现次数的分布。
如果所有物品都出现在推荐列表中,且出现的次数差不多,那么推荐系统挖掘长尾的能力就很好。
可以用信息熵和基尼系数来表示覆盖率。

1.4 多样性

推荐列表的多样性是指推荐的内容可以覆盖用户绝大多数的兴趣点,这样就会增加用户找到感兴趣物品的概率。
多样性描述了推荐列表中物品两两之间的不相似性。

1.5 新颖性

给用户推荐那些他们以前没有听说过的物品。
最简单的方法是利用推荐结果的平均流行度,因为越不热门的物品越有可能让用户觉得新颖。
但是要准确地统计新颖性需要做用户调查。

1.6 惊喜度

区别与新颖性,惊喜度表示如果推荐结果和用户历史兴趣不相似,但却让用户觉得满意,那么就可以说推荐结果的惊喜度很高,而推荐的新颖性仅仅取决于用户是否听说过推荐结果。
目标还没有公认的惊喜度指标定义方式。

1.7 实时性

物品(新闻、微博)具有很强的实时性,所以需要在物品还具有实效性时将它们推荐给用户。

1.8 健壮性

健壮性用来衡量推荐系统抗击作弊的能力。
常见的作弊方法为行为注入攻击,例如模仿购物行为来刷单。
提高健壮性的方法:

  • 选择健壮性高的算法
  • 进行使用代价较高的用户行为。比如购买需要付费。
  • 使用数据前,进行攻击检测,从而对数据进行清洗。

2.选择推荐系统的指标

首先我们使用ml-latest-small数据集,我们将数据集分为训练集和测试集。
我们选取精确率、召回率、覆盖率、新颖性来作为评测指标。

def precision(self, user_list):
    """
    计算精确率, 推荐正确item集合 / 所有推荐item集合
    :param user_list: user集合
    :return:
    """
    hit = 0
    all_recom = 0
    print('计算精确率:')
    for user in tqdm(user_list)<
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值