推荐系统的评估方法

离线评估的主要方法

Holdout检验

Holdout检验是基础的离线评估方法,它将原始的样本集合随机划分为训练集和验证集两部分,比如70%训练集,30%测试集(但现在很多机器学习框架、深度学习框架中都增加了验证集,即将整个数据集分成三份,70%训练集,10%验证集,20%测试集)。

Holdout检验的缺点也很明显,即在验证集上计算出来的评估指标与训练集和测试机的划分有直接关系,如果仅进行少量Holdout检验,则得到的结论存在很大的随机性(在划分数据集的时候尽量保证其随机性)。

交叉检验

K 折交叉验证

K 折交叉验证(K-Fold Cross Validation),先将全部样本划分成k个大小相等的样本子集,依次遍历这k个子集,每次都把当前子集作为验证集,其余所有子集作为训练集,进行模型的训练和评估,最后将所有k次的评估指标的平均值作为最终的评估指标,在实际经验中,k经常取值为 10。

留一验证

每次留下1个样本作为验证集,其余所有样本作为测试集,样本总数为n,依次遍历所有n个样本,进行n次验证,再将评估指标求平均得到最终指标。在样本总数较多的情况下,留一验证法的时间开销极大,事实上,留一验证是留p验证的特例,留p验证是指每次留下p个样本作为验证集,而从n个元素中选择p个元素有 C n p C_n^p Cnp种可能,因此它的时间开销远远高于留一验证,故很少在实际中使用。

自助法

不管是holdout检验还是K-Fold CV,都是基于划分训练集和测试集的方法进行模型评估的,当样本规模比较小时,将样本集进行划分,会进一步缩小训练集,有影响模型的训练效果。

自助法(Bootstrap)是基于自助采样法的检验方法:对于总数为n的样本集合,进行n次有放回的随机抽样,得到大小为n的训练集,在n次采样过程中,有的样本会被重复采样,有的样本没有被抽出过,将这些没有被抽出的样本作为验证集进行模型验证,就是自助法的验证过程。

离线评估的主要指标

准确率

分类准确率是指分类正确的样本占总样本个数的比例: a c c u r a c y = n c o r r e c t / n t o t a l accuracy = n_{correct}/n_{total} accuracy=ncorrect/ntotal n c o r r e c t n_{correct} ncorrect为被正确分类的样本个数, n t o t a l n_{total} ntotal为总样本个数,准确率是分类任务中比较直观的评价指标。

优点:解释性强
缺点:类别分布不均匀时,占比大的类别往往成为影响准确率的主要因素(极端的情况比如正样本 1%,负样本 99%时)

精确率、召回率、F1-score

  • 精确率(Precision)是分类正确的正样本个数占分类器判定为正样本的样本个数的比例

  • 召回率(Recall)是分类正确的正样本个数占真正正样本个数的比例

排序模型中,通常没有一个确定的阈值把预测结果直接判定为正样本还是负样本,而是采用 TopN 排序结果的精确率(Precision@N)和召回率(Recall@N)来衡量排序模型的性能,即认为模型排序的TopN的结果就是模型排定的正样本,然后计算精确率和召回率。

精确率和召回率是矛盾统一的两个指标:为了提高精确率,分类器需要尽量在“更有把握时”才把样本预测为正样本,但往往因为过于保守而漏掉很多“没有把握”的正样本,导致召回率降低。

因此使用F1-score进行调和(也叫F-measure),定义为: F 1 = 2 ∗ P r e c i s i o n ∗ R e c a l P r e c i s i o n + R e c a l l F1 = \frac{2*Precision*Recal}{Precision+Recall} F1=Precision+Recall2P

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值