功能介绍

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

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

给出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