• 功能介绍
    • Roc曲线
    • AUC
    • Recall-Precision曲线
    • PRC
    • 提升曲线
    • Precision
    • Recall
    • F-Measure
    • Sensitivity
    • Accuracy
    • Specificity
    • Kappa
    • Logloss
  • 参数说明
  • 脚本示例
    • 脚本代码
    • 脚本运行结果

    功能介绍

    二分类评估是对二分类算法的预测结果进行效果评估。

    支持Roc曲线,LiftChart曲线,Recall-Precision曲线绘制。

    流式的实验支持累计统计和窗口统计。

    给出整体的评估指标包括:AUC、K-S、PRC, 不同阈值下的Precision、Recall、F-Measure、Sensitivity、Accuracy、Specificity和Kappa。

    Roc曲线

    横坐标:FPR

    纵坐标:TPR

    AUC

    Roc曲线下面的面积

    Recall-Precision曲线

    横坐标:Recall

    纵坐标:Precision

    PRC

    Recall-Precision曲线下面的面积

    提升曲线

    横坐标:

    二分类评估(batch) - 图1

    纵坐标:TP

    Precision

    二分类评估(batch) - 图2

    Recall

    二分类评估(batch) - 图3

    F-Measure

    二分类评估(batch) - 图4

    Sensitivity

    二分类评估(batch) - 图5

    Accuracy

    二分类评估(batch) - 图6

    Specificity

    二分类评估(batch) - 图7

    Kappa

    二分类评估(batch) - 图8
    二分类评估(batch) - 图9
    二分类评估(batch) - 图10

    Logloss

    二分类评估(batch) - 图11

    参数说明

    名称 中文名称 描述 类型 是否必须? 默认值
    labelCol 标签列名 输入表中的标签列名 String
    predictionDetailCol 预测详细信息列名 预测详细信息列名 String
    positiveLabelValueString 正样本 正样本对应的字符串格式。 String null

    脚本示例

    脚本代码

    1. import numpy as np
    2. import pandas as pd
    3. data = np.array([
    4. ["prefix1", "{\"prefix1\": 0.9, \"prefix0\": 0.1}"],
    5. ["prefix1", "{\"prefix1\": 0.8, \"prefix0\": 0.2}"],
    6. ["prefix1", "{\"prefix1\": 0.7, \"prefix0\": 0.3}"],
    7. ["prefix0", "{\"prefix1\": 0.75, \"prefix0\": 0.25}"],
    8. ["prefix0", "{\"prefix1\": 0.6, \"prefix0\": 0.4}"]])
    9. df = pd.DataFrame({"label": data[:, 0], "detailInput": data[:, 1]})
    10. inOp = BatchOperator.fromDataframe(df, schemaStr='label string, detailInput string')
    11. metrics = EvalBinaryClassBatchOp().setLabelCol("label").setPredictionDetailCol("detailInput").linkFrom(inOp).collectMetrics()
    12. print("AUC:", metrics.getAuc())
    13. print("KS:", metrics.getKs())
    14. print("PRC:", metrics.getPrc())
    15. print("Accuracy:", metrics.getAccuracy())
    16. print("Macro Precision:", metrics.getMacroPrecision())
    17. print("Micro Recall:", metrics.getMicroRecall())
    18. print("Weighted Sensitivity:", metrics.getWeightedSensitivity())

    脚本运行结果

    1. AUC: 0.8333333333333333
    2. KS: 0.6666666666666666
    3. PRC: 0.9027777777777777
    4. Accuracy: 0.6
    5. Macro Precision: 0.3
    6. Micro Recall: 0.6
    7. Weighted Sensitivity: 0.6