• 功能介绍
    • 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曲线下面的面积

    提升曲线

    横坐标:

    二分类评估(stream) - 图1

    纵坐标:TP

    Precision

    二分类评估(stream) - 图2

    Recall

    二分类评估(stream) - 图3

    F-Measure

    二分类评估(stream) - 图4

    Sensitivity

    二分类评估(stream) - 图5

    Accuracy

    二分类评估(stream) - 图6

    Specificity

    二分类评估(stream) - 图7

    Kappa

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

    Logloss

    二分类评估(stream) - 图11

    参数说明

    名称 中文名称 描述 类型 是否必须? 默认值
    positiveLabelValueString 正样本 正样本对应的字符串格式。 String null
    timeInterval 时间间隔 流式数据统计的时间间隔 Integer 3
    labelCol 标签列名 输入表中的标签列名 String
    predictionCol 预测结果列名 预测结果列名 String
    predictionDetailCol 预测详细信息列名 预测详细信息列名 String

    脚本示例

    脚本代码

    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())
    19. inOp = StreamOperator.fromDataframe(df, schemaStr='label string, detailInput string')
    20. EvalBinaryClassStreamOp().setLabelCol("label").setPredictionDetailCol("detailInput").setTimeInterval(1).linkFrom(inOp).print()
    21. StreamOperator.execute()