zoukankan      html  css  js  c++  java
  • 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

     

     

  • 相关阅读:
    psi
    firefox修改语言
    automapper
    堆喷图解
    脱壳系列_0_FSG壳_详细版
    脱壳系列_1_UPX壳_详细版
    算法01-最大子数组详解
    逆向MFC程序
    如何执行shell命令
    Unity之流光效果
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/14902375.html
Copyright © 2011-2022 走看看