单标签二分类算法

Logistic算法

单标签多分类算法

Softmax算法

One-Versus-One(ovo):一对一

One-Versus-All / One-Versus-the-Rest(ova/ovr): 一对多

ovo和ovr的区别

Error Correcting Output codes(纠错码机制):多对多

多标签多分类算法

Problem Transformation Methods

Binary Relevance

Classifier Chains

Calibrated Label Ranking

Algorithm Adaptation

ML-kNN

ML-DT

多标签多分类在Scikit-learn中的实现方式


单标签二分类算法

单标签二分类这种问题是我们最常见的算法问题,主要是指label标签的取值只有两种,并且算法中只有一个需要预测的label标签。直白来讲就是每个实例的可能类别只有两种(A or B)。此时的分类算法其实是在构建一个分类线将数据划分为两个类别。常见的算法有:Logistic、SVM、KNN等。

Logistic算法

单标签多分类算法

单标签多分类问题其实是指待预测的label标签只有一个,但是label标签的取值可能有多种情况。直白来讲就是每个实例的可能类别有K种。常见算法:Softmax、KNN等。

Softmax算法

在实际的工作中,如果是一个多分类的问题,我们可以将这个待求解的问题转换为二分类算法的延伸,即将多分类任务拆分为若干个二分类任务求解,具体的策略如下:

  • One-Versus-One(ovo):一对一
  • One-Versus-All / One-Versus-the-Rest(ova/ovr): 一对多
  • Error Correcting Output codes(纠错码机制):多对多

One-Versus-One(ovo):一对一

将K个类别中的两两类别数据进行组合,然后使用组合后的数据训练出来一个模型,从而产生K(K-1)/2个分类器,将这些分类器的结果进行融合,并将分类器的预测结果使用多数投票的方式输出最终的预测结果值。

One-Versus-All / One-Versus-the-Rest(ova/ovr): 一对多

在一对多模型训练中,不是两两类别的组合,而是将每一个类别作为正例,其它剩余的样例作为反例分别来训练K个模型。然后在预测的时候,如果在这K个模型中,只有一个模型输出为正例,那么最终的预测结果就是属于该分类器的这个类别。如果产生多个正例,那么则可以选择根据分类器的置信度作为指标,来选择置信度最大的分类器作为最终结果,常见置信度:精确度、召回率。

ovo和ovr的区别

Error Correcting Output codes(纠错码机制):多对多

将模型构建应用分为两个阶段:编码阶段和解码阶段。编码阶段中对K个类别中进行M次划分,每次划分将一部分数据分为正类,一部分数据分为反类,每次划分都构建出来一个模型,模型的结果是在空间中对于每个类别都定义了一个点。解码阶段中使用训练出来的模型对测试样例进行预测,将预测样本对应的点和类别之间的点求距离,选择距离最近的类别作为最终的预测类别。

多标签多分类算法

Multi-Label Machine Learning(MLL算法)是指预测模型中存在多个y值,具体分为两类不同情况:

  • 多个待预测的y值
  • 在分类模型中,一个样例可能存在多个不固定的类别

根据多标签业务问题的复杂性,可以将问题分为两大类:

  • 待预测值之间存在相互的依赖关系
  • 待预测值之间是不存在依赖关系的

对于这类问题的解决方案可以分为两大类:

  • 转换策略(Problem Transformation Methods)
  • 算法适应(Algorithm Adaptation)

Problem Transformation Methods

该方法又叫做策略转换或者问题转换,是一种将多标签的分类问题转换成为单标签模型构造的问题,然后将模型合并的一种方法,主要有以下几种方式:

  • Binary Relevance(first-order)
  • Classifier Chains(high-order)
  • Calibrated Label Ranking(second-order)

Binary Relevance

Binary Relevance的核心思想是将多标签分类问题进行分解,将其转换为q个二元分类问题,其中每个二元分类器对应一个待预测的标签。

Binary Relevance方式的优点如下:

  • 实现方式简单,容易理解
  • 当y值之间不存在相关的依赖关系的时候,模型的效果不错

Binary Relevance方式的缺点如下:

  • 如果y之间存在相互的依赖关系,那么最终构建的模型的泛化能力比较弱
  • 需要构建q个二分类器,q为待预测的y值数量,当q比较大的时候,需要构建的模型会比较多

Classifier Chains

Classifier Chains的核心思想是将多标签分类问题进行分解,将其转换成为一个二元分类器链的形式,其中后链的二元分类器的构建是在前面分类器预测结果的基础上的。在模型构建的时候,首先将标签顺序进行shuffle打乱排序操作,然后按照从头到尾分别构建每个标签对应的模型。

Classifier Chains方法的优点如下:

  • 实现方式相对比较简单,容易理解
  • 考虑标签之间的依赖关系,最终模型的泛化能力相对于Binary Relevance方式构建的模型效果要好

缺点如下:

  • 很难找到一个比较适合的标签依赖关系

Calibrated Label Ranking

Calibrated Label Ranking的核心思想是将多标签分类问题进行分解,将其转换为标签的排序问题,最终的标签就是排序后最大的几个标签值。

Calibrated Label Ranking 方法的优点如下:

  • 考虑了标签两两组合的情况,最终的模型相对来讲泛化能力比较好

Calibrated Label Ranking 方法的缺点如下:

  • 只考虑两两标签的组合,没有考虑到标签与标签之间的所有依赖关系

Algorithm Adaptation

Algorithm Adaptation又叫做算法适应性策略,是一种将现有的单标签的算法直接应用到多标签上的一种方式,主要有以下几种方式:

  • ML-kNN
  • ML-DT

ML-kNN

ML-kNN的思想:对于每一个实例来讲,先获取距离它最近的k个实例,然后使用这些实例的标签集合,通过最大后验概率(MAP)来判断这个实例的预测标签集合的值。

最大后验概率(MAP):其实就是在最大似然估计(MLE)中加入了这个要估计量的先验概率分布。

ML-DT

ML-DT是使用决策树处理多标签内容,核心在于给予更细粒度的信息熵增益准则来构建这个决策树模型。
                                                                 

多标签多分类在Scikit-learn中的实现方式

在Scikit-learn中使用OneVsRestClassifier对多标签进行分类操作,内部其实是将多标签问题转换为多类别的区分问题。

机器学习之单标签多分类及多标签多分类相关推荐

  1. 【深度学习】单标签多分类问题之新闻主题分类

    # -*- coding: utf-8 -*- """单标签多分类问题之新闻主题分类.ipynbAutomatically generated by Colaborato ...

  2. 机器学习之深度学习 二分类、多分类、多标签分类、多任务分类

    多任务学习可以运用到许多的场景. 首先,多任务学习可以学到多个任务的共享表示,这个共享表示具有较强的抽象能力,能够适应多个不同但相关的目标,通常可以使主任务获取更好的泛化能力. 此外,由于使用了共享表 ...

  3. 【火炉炼AI】机器学习008-简单线性分类器解决二分类问题

    [火炉炼AI]机器学习008-简单线性分类器解决二分类问题 (本文所使用的Python库和版本号: Python 3.5, Numpy 1.14, scikit-learn 0.19, matplot ...

  4. 机器学习--分类算法中单标签与多标签的问题

    目录 一 单标签问题(二分类算法进行预测单标签多分类) 1 ovo(one versus one,一对一) 2 ovr(one versus rest,一对多) 3 error correcting ...

  5. 机器学习在重度抑郁症患者中的应用:从分类到治疗结果预测

    重度抑郁症(MDD)是导致残疾和发病率最大的单一因素,影响全球约10%的人口.目前,临床上还未发现有用的诊断生物标志物可以从抑郁症和双相情感障碍(BD)的早期就能诊断出抑郁症.因此,迫切需要探索基于机 ...

  6. 机器学习之单变量线性回归(Linear Regression with One Variable)

    机器学习之单变量线性回归(Linear Regression with One Variable) 1. 模型表达(Model Representation) 我们的第一个学习算法是线性回归算法,让我 ...

  7. 多标签分类_多标签分类文献阅读(8)

    使用堆叠式自动编码器和极限学习机的级联进行多标签分类 摘要 本文介绍了用于多标签数据分类的一系列神经网络.两种类型的网络,即堆叠式自动编码器(SAE)和极限学习机(ELM)已被合并到建议的系统中.EL ...

  8. 机器学习实战4-sklearn训练线性回归模型(鸢尾花iris数据集分类)

    不贴图都没人看系列.... 线性回归推导: 上图求导部分有误,少些一个转置符号,更正为: 逻辑回归推导: (公式中"ln"和"log"表示一个意思,都是以&qu ...

  9. Python分类算法——多标签图像分类

    根据分类任务的目标不同,可以将图像分类任务划分成两部分:(1)单标签图像分类:(2)多标签图像分类. 一.单标签图像分类 二.多标签图像分类 参考链接: 基于Keras的多标签图像分类 手把手系列 | ...

  10. 机器学习书单(实践篇)

    机器学习书单 (实践篇) HZBOOK 长按二维码了解及购买 <Python机器学习(原书第2版)> ISBN:978-7-111--55880-4 作 者: [美] Sebastian ...

最新文章

  1. 深度学习如何提高训练集准确率_吴恩达深度学习笔记(61)-训练调参中的准确率和召回率...
  2. GDI+ 中发生一般性错误(生成验证码时出现的错误)
  3. C# 实现将 PDF 转文本的功能
  4. sealed、new、virtual、abstract与override 趣解
  5. 句柄 matlab_matlab 整车仿真
  6. d9900 修改ip 思科dcm_思科设备SSH登陆详细配置过程
  7. vue的v-model绑定对象属性时,更新不及时,不能修改
  8. c语言可作为程序分支的表达式,[计算机软件及应用]C语言程序设计4--李2012.ppt
  9. linux替换字符串 正则,Linux 字符串操作-裁剪和正则替换
  10. 如何进行多语言发布,做国际化开发
  11. OkHttp文件上传下载
  12. 模拟器中安装和使用Drozer总结
  13. kindlefire刷安卓系统_[原创]安卓4.0完美运行 Kindle Fire刷机教程
  14. 基于Python的电商数据分析系统
  15. [ActionSprit 3.0] FMS安装与测试
  16. ffmpeg 裁剪视频 / 批量
  17. 中国科学技术大学计算机考研好考吗,中国科学技术大学计算机考研复习方法谈(2)...
  18. 手机拍照技巧(一:校园拍摄)
  19. RT-AC87U华硕路由器外网登陆
  20. dividing(多重背包)

热门文章

  1. C语言,一种如此美丽的语言
  2. CABAC之手把手教你编码
  3. FreeSql (十)更新数据
  4. BZOJ.2741.[FOTILE模拟赛]L(分块 可持久化Trie)
  5. 奇怪的bug,不懂Atom在添加markdown-themeable-pdf,在配置好phantomjs的情况下报错
  6. Java 监听器,国际化
  7. 随机生成一定范围的随机数
  8. JDK的目录结构及结构图
  9. 发布《Linux工具快速教程》
  10. [LeetCode]Search Insert Position