功能介绍

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

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

给出整体的评估指标包括Precision、Recall、F-Measure、Sensitivity、Accuracy、Specificity和Kappa。

Precision

多分类评估(stream) - 图1

Recall

多分类评估(stream) - 图2

F-Measure

多分类评估(stream) - 图3

Sensitivity

多分类评估(stream) - 图4

Accuracy

多分类评估(stream) - 图5

Specificity

多分类评估(stream) - 图6

Kappa

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

Logloss

多分类评估(stream) - 图10

参数说明

名称 中文名称 描述 类型 是否必须? 默认值
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 = 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()