zoukankan      html  css  js  c++  java
  • 推荐系统评估指标

    推荐系统评估指标

    https://www.cnblogs.com/eilearn/p/14164687.html

    PNR(Positive Negative Rate)

    • 正逆序比 = 正序数 / 逆序数;

    AUC(Area Under Curve)

    • ROC(Receiver Operating Characteristic)曲线与AUC(Area Under Curve)

    ROC曲线:

    • 横坐标:假正率(False positive rate, FPR),FPR = FP / [FP + TN] ,代表所有负样本中错误预测为正样本的概率,假警报率;

    • 纵坐标:真正率(True positive rate, TPR),TPR = TP / [TP + FN] ,代表所有正样本中预测正确的概率,命中率。

    对角线对应于随机猜测模型,而(0,1)对应于所有整理排在所有反例之前的理想模型。曲线越接近左上角,分类器的性能越好。

    ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。

    ROC曲线绘制:

    (1) 根据每个测试样本属于正样本的概率值从大到小排序;

    (2) 从高到低,依次将“Score”值作为阈值threshold,当测试样本属于正样本的概率大于或等于这个threshold时,我们认为它为正样本,否则为负样本;

    (3) 每次选取一个不同的threshold,我们就可以得到一组FPR和TPR,即ROC曲线上的一点。

    • 当我们将threshold设置为1和0时,分别可以得到ROC曲线上的(0,0)和(1,1)两个点。将这些(FPR,TPR)对连接起来,就得到了ROC曲线。当threshold取值越多,ROC曲线越平滑。

    AUC(Area Under Curve)即为ROC曲线下的面积

    • AUC越接近于1,分类器性能越好。

    物理意义:首先AUC值是一个概率值,当你随机挑选一个正样本以及一个负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值。当然,AUC值越大,当前的分类算法越有可能将正样本排在负样本前面,即能够更好的分类。

    计算公式:就是求曲线下矩形面积。

    推荐系统的 auc:https://mp.weixin.qq.com/s/e3qcSo8LPDf2S8TUvU6S1A

    • AUC代表模型预估样本之间的排序关系,即正负样本之间预测的gap越大,auc越大

    ROC曲线反映了分类器的分类能力,结合考虑了分类器输出概率的准确性

    AUC量化了ROC曲线的分类能力,越大分类效果越好,输出概率越合理

    AUC常用作CTR的离线评价,AUC越大,CTR的排序能力越强

    计算逻辑问题:

    AUC计算是基于模型对全集样本的的排序能力,而真实线上场景,往往只考虑一个用户一个session下的排序关系。这里的gap往往导致一些问题。正如参考[3]中的举例的几个case,比较典型。主要包括两点:

    1. 线上会出现新样本,在线下没有见过,造成AUC不足。这部分更多是采用online learning的方式去缓解,AUC本身可改进的不多。

    2. 线上的排序发生在一个用户的session下,而线下计算全集AUC,即把user1点击的正样本排序高于user2未点击的负样本是没有实际意义的,但线下auc计算的时候考虑了它。

    3. 改进:deepES 数据分析时,分用户进行 pnr 统计;

  • 相关阅读:
    二进制数组ArrayBuffer
    iperf3测量一个网络最大带宽
    Proxy与Reflect
    Symbol
    Iterator
    Set与Map
    Generator
    Android 共享参数 SharedPreferences
    DDMS files not found: xxxhprof-conv.exe
    Android 状态栏通知 Notification
  • 原文地址:https://www.cnblogs.com/douzujun/p/15433615.html
Copyright © 2011-2022 走看看