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

     

     

  • 相关阅读:
    关于基于.net的WEB程序开发所需要的一些技术归纳
    技术的学习方法探索之一
    生活,就是让程序为人们服务!
    js滑动提示效果
    radio判断是否为空
    JS清除网页历史记录,屏蔽后退按钮
    多表查询存储过程
    IP地址转化为数字,charindex ,SUBSTRING
    c# byte转化为string
    获得IP地址中文
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/14902375.html
Copyright © 2011-2022 走看看