zoukankan      html  css  js  c++  java
  • 分段覆盖率TPR

     

    黑产监控中,需要尽可能做到尽可能少的误伤和尽可能准确地探测,可以选择“在FPR较低时的TPR加权平均值”作为平均指标。

    根据混淆矩阵计算TPR(覆盖率)和FPR(打扰率):

    覆盖率:TPR = TP /(TP + FN)

    打扰率:FPR = FP /(FP + TN)

    TP、FN、FP、TN分别为真正例、假反例、假正例、真反例

    通过设定不同的阈值,会有一系列TPR和FPR,就可以绘制出ROC曲线:

    这里的评分指标,首先计算3个覆盖率TPR:

    TPR1:FPR=0.001时的TPR

    TPR2:FPR=0.005时的TPR

    TPR3:FPR=0.01  时的TPR

    最终成绩= 0.4 * TPR1 + 0.3 * TPR2 + 0.3 * TPR3 

    def tpr_weight_funtion(y_true,y_predict):
      """
      y_true:真实的类别
      y_predict:预测的类别
      """ d
    = pd.DataFrame() d['prob'] = list(y_predict) d['y'] = list(y_true) d = d.sort_values(['prob'], ascending=[0]) y = d.y PosAll = pd.Series(y).value_counts()[1] NegAll = pd.Series(y).value_counts()[0] pCumsum = d['y'].cumsum() nCumsum = np.arange(len(y)) - pCumsum + 1 pCumsumPer = pCumsum / PosAll nCumsumPer = nCumsum / NegAll TR1 = pCumsumPer[abs(nCumsumPer-0.001).idxmin()] TR2 = pCumsumPer[abs(nCumsumPer-0.005).idxmin()] TR3 = pCumsumPer[abs(nCumsumPer-0.01).idxmin()] return 0.4 * TR1 + 0.3 * TR2 + 0.3 * TR3
  • 相关阅读:
    BZOJ2330 SCOI2011糖果
    BZOJ 3812主旋律
    模板更新 扩展卢卡斯
    BZOJ4556 HEOI2016字符串
    CodeForces700E Cool Slogans
    Atcoder Contest069F:Flag
    计算几何模板(更新中......)
    BZOJ4003 JLOI2015城池攻占
    BZOJ3772精神污染
    HDU5919 SequenceⅡ
  • 原文地址:https://www.cnblogs.com/wzdLY/p/9987921.html
Copyright © 2011-2022 走看看