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

    功能介绍

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

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

    给出Precision、Recall、F-Measure、Sensitivity、Accuracy、Specificity和Kappa。

    Precision

    多分类评估(batch) - 图1

    Recall

    多分类评估(batch) - 图2

    F-Measure

    多分类评估(batch) - 图3

    Sensitivity

    多分类评估(batch) - 图4

    Accuracy

    多分类评估(batch) - 图5

    Specificity

    多分类评估(batch) - 图6

    Kappa

    多分类评估(batch) - 图7
    多分类评估(batch) - 图8
    多分类评估(batch) - 图9

    Logloss

    多分类评估(batch) - 图10

    参数说明

    名称 中文名称 描述 类型 是否必须? 默认值
    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 = EvalMultiClassBatchOp().setLabelCol("label").setPredictionDetailCol("detailInput").linkFrom(inOp).collectMetrics()
    12. print("Prefix0 accuracy:", metrics.getAccuracy("prefix0"))
    13. print("Prefix1 recall:", metrics.getRecall("prefix1"))
    14. print("Macro Precision:", metrics.getMacroPrecision())
    15. print("Micro Recall:", metrics.getMicroRecall())
    16. print("Weighted Sensitivity:", metrics.getWeightedSensitivity())
    17. inOp = StreamOperator.fromDataframe(df, schemaStr='label string, detailInput string')
    18. EvalMultiClassStreamOp().setLabelCol("label").setPredictionDetailCol("detailInput").setTimeInterval(1).linkFrom(inOp).print()
    19. StreamOperator.execute()

    脚本运行结果

    1. Prefix0 accuracy: 0.6
    2. Prefix1 recall: 1.0
    3. Macro Precision: 0.3
    4. Micro Recall: 0.6
    5. Weighted Sensitivity: 0.6