• ALINK(三十九):模型评估(四)多标签分类评估 (EvalMultiLabelBatchOp)


    多标签分类评估 (EvalMultiLabelBatchOp)

    Java 类名:com.alibaba.alink.operator.batch.evaluation.EvalMultiLabelBatchOp

    Python 类名:EvalMultiLabelBatchOp

    功能介绍

    多label分类评估是对多label分类算法的预测结果进行效果评估,支持下列评估指标。

     

    f1

    参数说明

    名称

    中文名称

    描述

    类型

    是否必须?

    默认值

    labelCol

    标签列名

    输入表中的标签列名

    String

     

    predictionCol

    预测结果列名

    预测结果列名

    String

     

    labelRankingInfo

    Object列列名

    Object列列名

    String

     

    "object"

    predictionRankingInfo

    Object列列名

    Object列列名

    String

     

    "object"

    代码示例

    Python 代码

    from pyalink.alink import *
    import pandas as pd
    useLocalEnv(1)
    df = pd.DataFrame([
        ["{"object":"[0.0, 1.0]"}", "{"object":"[0.0, 2.0]"}"],
        ["{"object":"[0.0, 2.0]"}", "{"object":"[0.0, 1.0]"}"],
        ["{"object":"[]"}", "{"object":"[0.0]"}"],
        ["{"object":"[2.0]"}", "{"object":"[2.0]"}"],
        ["{"object":"[2.0, 0.0]"}", "{"object":"[2.0, 0.0]"}"],
        ["{"object":"[0.0, 1.0, 2.0]"}", "{"object":"[0.0, 1.0]"}"],
        ["{"object":"[1.0]"}", "{"object":"[1.0, 2.0]"}"]
    ])
    source = BatchOperator.fromDataframe(df, "pred string, label string")
    evalMultiLabelBatchOp: EvalMultiLabelBatchOp = EvalMultiLabelBatchOp().setLabelCol("label").setPredictionCol("pred").linkFrom(source)
    metrics = evalMultiLabelBatchOp.collectMetrics()
    print(metrics)

    Java 代码

    import org.apache.flink.types.Row;
    import com.alibaba.alink.operator.batch.BatchOperator;
    import com.alibaba.alink.operator.batch.evaluation.EvalMultiLabelBatchOp;
    import com.alibaba.alink.operator.batch.source.MemSourceBatchOp;
    import com.alibaba.alink.operator.common.evaluation.MultiLabelMetrics;
    import org.junit.Test;
    import java.util.Arrays;
    import java.util.List;
    public class EvalMultiLabelBatchOpTest {
      @Test
      public void testEvalMultiLabelBatchOp() throws Exception {
        List <Row> df = Arrays.asList(
          Row.of("{"object":"[0.0, 1.0]"}", "{"object":"[0.0, 2.0]"}"),
          Row.of("{"object":"[0.0, 2.0]"}", "{"object":"[0.0, 1.0]"}"),
          Row.of("{"object":"[]"}", "{"object":"[0.0]"}"),
          Row.of("{"object":"[2.0]"}", "{"object":"[2.0]"}"),
          Row.of("{"object":"[2.0, 0.0]"}", "{"object":"[2.0, 0.0]"}"),
          Row.of("{"object":"[0.0, 1.0, 2.0]"}", "{"object":"[0.0, 1.0]"}"),
          Row.of("{"object":"[1.0]"}", "{"object":"[1.0, 2.0]"}")
        );
        BatchOperator <?> source = new MemSourceBatchOp(df, "pred string, label string");
        EvalMultiLabelBatchOp evalMultiLabelBatchOp =
          new EvalMultiLabelBatchOp().setLabelCol("label").setPredictionCol(
          "pred").linkFrom(source);
        MultiLabelMetrics metrics = evalMultiLabelBatchOp.collectMetrics();
        System.out.println(metrics.toString());
      }
    }
    -------------------------------- Metrics: --------------------------------
    microPrecision:0.7273
    microF1:0.6957
    subsetAccuracy:0.2857
    precision:0.6667
    recall:0.6429
    accuracy:0.5476
    f1:0.6381
    microRecall:0.6667
    hammingLoss:0.3333

     

     

  • 相关阅读:
    【HTML5】html5在ie8及以下的兼容性问题
    【前端】从登录框看前端
    批量插入
    Mongodb地理空间索引
    Mongodb添加地理位置索引
    记一 次docker-compose build报错
    The method's class, com.google.common.collect.FluentIterable, is available from the following locations
    如果在chrome的新标签中继续打开开发工具
    设置idea 2018 的vmoptions无效
    spring boot(2):activiti整合
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/14902375.html
Copyright © 2020-2023  润新知