机器学习中的多标签分类

机器学习中的多标签分类多标签分类的算法 通常改变算法或数据 最常用的方法如下 改造成二分类比如 y 标签一共有 L 个分类 那么就建立 L 个分类器 分别对应 L 个分类标签 进行训练 标签排序 二分类使用 成对比较 pairwisecomp 获得 L L 1 2 个分类器 在训练这些分类器后 利用投票方式得到标签的排序 然后 利用二分类来对标签排序的投票结果进行补充 提高准确性 随机 k 标签从

标签分类的算法,通常改变算法或数据,最常用的方法如下:

改造成二分类

比如,y标签一共有L个分类,那么就建立L个分类器,分别对应L个分类标签,进行训练。

标签排序+二分类

使用“成对比较”(pairwise comparison),获得L(L-1)/2个分类器。在训练这些分类器后,利用投票方式得到标签的排序。然后,利用二分类来对标签排序的投票结果进行补充,提高准确性。

随机k标签

从L个标签中,随机选k个标签,重复N次,共获得N个分类器。接着,利用多类分类器(multi-class,不是multi-label)来训练数据,最后进行投票,如果对于某一分类标签的实际获得的投票数占最大可能的投票数的一半以上,那么就说当前的样本属于该分类。通常,k设为3,n设为2L。

预测指标

Hamming Loss:

Hamming Loss是最简单的损失函数,其值是 误分类标签总数/(样本数*标签数),这个值,越小越好

可能这么说不太好理解,下面用Python代码来解释:

# pred为预测标签,y为实际标签 def hamming_loss_class(pred,y): num_class,num_instance = y.shape miss = sum((pred != y)) miss = sum(miss) hamming_loss = miss/(num_class*num_instance) return hamming_loss 

假设,实际标签为:

[1,0,0],[1,0,0],[0,1,1],[0,1,1],[0,1,1]

预测的标签为:

[1,0,0],[1,1,0],[1,1,1],[0,0,1],[0,1,1]

第2、3、4个样本各有一个误分类,那么Hamming Loss的值为3/15=0.2

宏平均(macro-average)与微平均(micro-average)

Hamming Loss虽然简单,但它会有一个严重的问题:例如,一个水果图片数据集要进行预测,其中有990个苹果、5个鸭梨和5个橘子。如果分类器把所有的图片都当做苹果,那么Hamming Loss的值几乎接近0。看起来分类器似乎不错,但其实根本没有任何分类能力。

所以,有人引入了宏平均(macro-average)与微平均(micro-average)

在讨论宏平均与微平均之前,要先了解以下几个概念:

  • precision(准确率,查准率)
  • recall(召回率,查全率)
  • F-Score

多标签分类问题,分类结果通常有4种:

  • 属于该类的样本,被正确分类到该类,记这一类样本数为 TP(True Positive)
  • 不属于该类的样本,却被错误分类到该类,记这一类样本数为 FN(False Negative)
  • 属于该类的样本,却被错误分类到其他类,记这一类样本数为 TN(True Negative)
  • 不属于该类的样本,被正确分类到其他类,记这一类样本数为 FP(False Positive)

                                       机器学习中的多标签分类

recall也就是所有真正属于该类的样本中,被正确预测的个数;

precisionrecall是互补的,如果一个极高,另一个极低,就说明预测是有问题的

机器学习中的多标签分类

  • 宏平均(Macro-average),就是每个分类的F1分数加起来的和
  • 微平均(Micro-average)的计算公式如下:机器学习中的多标签分类

 

微平均就是所有预测正确的样本个数与样本数的和,可

以看出微平均与Hamming Loss的思想是相同的。

与Hamming Loss和微平均比起来,宏平均指数似乎更合理。当然具体要使用什么指标,还是要根据实际数据集的分布决定。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231579.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 各种光纤接口类型介绍图_光纤sc接口是什么形状

    各种光纤接口类型介绍图_光纤sc接口是什么形状各种光纤接口类型介绍ST、SC、FC光纤接头是早期不同企业开发形成的标准,使用效果一样,各有优缺点。ST、SC连接器接头常用于一般网络。ST头插入后旋转半周有一卡口固定,缺点是容易折断;SC连接头直接插拔,使用很方便,缺点是容易掉出来;FC连接头一般电信网络采用,有一螺帽拧到适配器上,优点是牢靠、防灰尘,缺点是安装时间稍长。MTRJ型光纤跳线由两个高精度塑

    2025年7月30日
    4
  • 国内it软件外包公司排行榜是怎么样的「建议收藏」

    国内it软件外包公司排行榜是怎么样的「建议收藏」国内it软件外包公司排行榜是怎么样的由于互联网技术的快速发展,特别是手机移动端的的普及,使得企业越来越需要开发自己自己的软件,但是软件开发人才缺口很大,企业没有这个技术实力去开发自己的软件,对于中小企业也不好招人,而这软件外包开发公司就可以帮助企业实现目标,这其中鱼龙混杂,让不少想要软件外包开发的企业难以选择,那么国内软件外包公司排行榜是怎么样的呢?下面为大家介绍华盛恒辉排名…

    2022年6月11日
    94
  • eclipse导入maven工程报错解决方法记录「建议收藏」

    eclipse导入maven工程报错解决方法记录「建议收藏」http://www.cnblogs.com/hongwz/p/5456578.html

    2022年5月6日
    72
  • 数控编程g代码大全与详解_数控g代码格式和解释

    数控编程g代码大全与详解_数控g代码格式和解释一、G代码功能简述G00快速定位G01直线插补G02顺时针方向圆弧插补G03逆时针方向圆弧插补G04定时暂停G05通过中间点圆弧插补G06抛物线插补G07Z样条曲线插

    2022年8月3日
    9
  • 学习SQL Server这一篇就够了

    学习SQL Server这一篇就够了目录第一章数据库概述1.1、数据库的好处1.2、数据库的常见概念1.3、数据库的存储特点1.4、数据库的常见分类1.5、SQL语言的分类第二章SQLServer概述2.1、SQLServer的概述2.2、SQLServer的下载2.3、SQLServer的安装2.4、SQLServer的第一种连接2.5、SQLServer的第二种连接2.6、SQLServer的连接说明第三章SQLServer数据库管理3.1、创建数据库3.1.1、界面方式3.1.2、命令方式3.2、修改数据库3.2.

    2022年7月27日
    9
  • phpstorm2022.01永久激活码【2022免费激活】2022.01.29

    (phpstorm2022.01永久激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月31日
    147

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号