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

     

     

  • 相关阅读:
    11-27:项目进度
    11-23:项目进度
    Scrum团队成立,阅读《构建之法》第6~7章,并参考以下链接,发布读后感、提出问题、并简要说明你对Scrum的理解
    团队项目:二次开发
    实验二 作业调度
    欣赏并且评价同学的复利计算博客
    对于我们的复利计算程序的升级
    用汉堡包的方式评价一下自己的合作伙伴
    结对项目:复利计算
    软件工程构建之法第四章读后感
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/14902375.html
Copyright © 2011-2022 走看看