多标签分类(multilabel classification )

多标签分类(multilabel classification )这几天看了几篇相关的文章,写篇文章总结一下,就像个小综述一样,文章会很乱  1、multilabelclassification的用途     多标签分类问题很常见,比如一部电影可以同时被分为动作片和犯罪片,一则新闻可以同时属于政治和法律,还有生物学中的基因功能预测问题,场景识别问题,疾病诊断等。 2.单标签分类     在传统的单标签分类中,训练

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

    这几天看了几篇相关的文章, 写篇文章总结一下,就像个小综述一样, 文章会很乱

   1、multilabel classification的用途

         多标签分类问题很常见, 比如一部电影可以同时被分为动作片和犯罪片, 一则新闻可以同时属于政治和法律,还有生物学中的基因功能预测问题, 场景识别问题,疾病诊断等。

  2. 单标签分类

         在传统的单标签分类中,训练集中的每一个样本只有一个相关的标签 l ,这个标签来自于一个不重合的标签集合L,|L| > 1.当|L|=2 时,这就是一个二分类问题,或文本和网页数据的过滤(filtering)问题。当|L| > 2 时是多分类问题。

  3、多标签分类问题的定义

        简单的说就是同一个实例,可以有多个标签, 或者被分为多个类。和多分类的区别是, 多分类中每个实例只有一个标签。下面是几个形式化的定义。

       用多标签分类(multilabel classification )代表样本空间,多标签分类(multilabel classification )=多标签分类(multilabel classification ) 为有限标签集合, 我们假设多标签分类(multilabel classification )中的样本实例多标签分类(multilabel classification )多标签分类(multilabel classification )的一个子集多标签分类(multilabel classification )相关,这个子集称作相关标签集。同时补集多标签分类(multilabel classification )被认为与x不相关。相关标签集L用向量多标签分类(multilabel classification )标识,其中多标签分类(multilabel classification )。用多标签分类(multilabel classification )表示可能的标签集。

      一个多标签分类器h是一个映射多标签分类(multilabel classification ),对每一个实例多标签分类(multilabel classification )分配一个分配一个标签子集。因此分类器h的输出是一个向量多标签分类(multilabel classification )

  4、与多标签分类相关/相似的问题

        一个同属于监督学习并和多标签分类很相关的问题就是排序问题(ranking)。排序任务是对一个标签集排序,使得排在前面的标签与相应实例更相关。

      在特定分类问题中,标签属于一个层次结构(hierarchical structure)。当数据集标签属于一个层次结构的时候,我们这个任务为层次分类,如果一个样本与层次结构的多个节点相关, 那么这个任务就被称为层次多标签分类。

     多实例学习(multiple-instance learning)是监督学习的一个变种,用的比较少 ,就不说了。

  5. 多标签分类的方法

       方法基本上分为两种,一种是将问题转化为传统的分类问题,二是调整现有的算法来适应多标签的分类

       常用的转化方法有好几种,比如对每个实例确定或随机的分配一个标签,或只保留只有一个标签的训练样本,然后用传统的多分类方法去训练。这种方法会导致训练样本的损失,所以不推荐使用。还可以将训练样本按每个标签构造一个训练集,每个样本属于或不属于这个标签,对每个标签单独训练一个分类器,然后将多个分类器的结果合成。还有将每个多标签单独看做一个新标签,在一个更多的标签集上做多分类。当多标签样本比较少时,这个方法就比较受限。还有对每个有多个标签的样本,复制该样本,每个样本具有不同的标签,加入训练集后使用覆盖(coverage based)分类法。

     调整的算法也比较多,比如通过调整boost kNN  SVM等实现多分类,这些调整通常也会用到上面的转换。其中调整kNN实现的多标签分类可以加入先验概率,并能对输出标签排序。基于SVM的算法中,有人在训练集中加入了|L|个二分类的训练结果,然后再进行一次分类,这个方法考虑到了不同标签之间的依赖,也是应用栈(Stacking 多个分类器的叠加)的一个特殊情况。还有人利用了相关规则挖掘的方法。

  6. 评价标准

       令D表示多标签评价数据集,有|D|个多标签样本多标签分类(multilabel classification )。令H为一个多标签分类器,令多标签分类(multilabel classification )为有H基于多标签分类(multilabel classification )的预测结果集。

     下面是几个评价标准

      多标签分类(multilabel classification )

         多标签分类(multilabel classification )

           多标签分类(multilabel classification )

   7、 一点感悟

         多标签学习,还有层次结构学习等,多个标签之间一般不是独立(independent)的,所以好的算法要利用标签之间的依赖

         算法训练的时候要么降低cost function 要么学习贝叶斯概率,两种方法本质一样,但表现形式不一样

  8.  其它

       F-measure能比较好的平衡分类器对不同类别实例不同时在不同类上的表现,因此更适合于不平衡的数据。对一个m维二元标签向量 多标签分类(multilabel classification ),对给定的预测多标签分类(multilabel classification ),F-measure定义为:

多标签分类(multilabel classification )其中由定义,0/0=1

F-measure对应于精度和召回的调和平均。

多标签分类(multilabel classification )

对于最大化F-measure的方法,为了简化问题一般都基于一些假设, 有人用两个循环给出了精确解

就说这么多吧,不想写了

      

        

       

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

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

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


相关推荐

  • vue项目刷新当前页面的三种方法[通俗易懂]

    vue项目刷新当前页面的三种方法[通俗易懂]本文介绍了vue项目刷新当前页面的三种方法,本文图文并茂给大家介绍的非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下。 想必大家在刨坑vue的时候也遇到过下面情形:比如在删除或者增加一条记录的时候希望当前页面可以重新刷新或者如下面这种:如果希望点击确定的时候,Dialog对话框关闭的时候,当前http://localhost:9530/#/supplier/supplierAll页面可以重新刷新下那么表格的数据可以重新加载,Dialog对话框设置的数据可以在确定后刷新出现在页面上

    2022年10月17日
    0
  • TreeTable树形数据列表

    TreeTable树形数据列表使用Treetable展示ajax数据,通用的List集合递归转换为具有层级关系的List集合

    2022年5月22日
    34
  • mysql配置1045错误_MySql 1045错误「建议收藏」

    mysql配置1045错误_MySql 1045错误「建议收藏」配置时以管理员身份运行MySQLInstanceConfigurationWizard当你登录MySQL数据库出现:Error1045错误时(如下图),就表明你输入的用户名或密码错误被拒绝访问了,最简单的解决方法就是将MySQL数据库卸载然后重装,但这样的缺点就是就以前的数据库中的信息将丢失,如果你不想重装,那么就需要找回密码或者重置密码。解决的方法应该有多种,这里我推荐大家使用一种原理通…

    2022年4月30日
    38
  • python中矩阵的转置_[转]Python中的矩阵转置[通俗易懂]

    python中矩阵的转置_[转]Python中的矩阵转置[通俗易懂]Python中的矩阵转置via需求:你需要转置一个二维数组,将行列互换.讨论:你需要确保该数组的行列数都是相同的.比如:arr=[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]列表递推式提供了一个简便的矩阵转置的方法:print[[r[col]forrinarr]forcolinrange(len(arr[0]))][[1,4…

    2022年5月29日
    43
  • C#.NET DataGridView 让部分单元格变成只读的例子程序「建议收藏」

    C#.NET DataGridView 让部分单元格变成只读的例子程序

    2022年3月11日
    29
  • hard code什么意思_hardcoding什么意思

    hard code什么意思_hardcoding什么意思写死(英文称hardcode,hardcoding)指的是在软体实作上,把输出或输入的相关参数(例如:路径、输出的形式、格式)直接写死在原始码中,而非在执行时期由外界指定的设定、资源、资料、或者格式做出适当回应…

    2022年10月24日
    0

发表回复

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

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