在我们解决多类线性可分问题的时候,常会遇到单标签二分类问题、单标签多分类问题、多标签算法问题,下面分别讨论。而前面讲的线性分类模型,原则上只能解决二分类问题,但通过一些技巧就可以解决多分类问题。

1 简介

1.1 单标签二分类问题

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

1.2 单标签多分类问题

单标签多分类问题其实是指待预测的label只有一个,但是label的取值可能有多种情况;直白来讲就是每个实例的可能类别有 KKK 种(t1,t2,⋯,tk,k≥3t_1, t_2, \cdots, t_k, k≥3t1​,t2​,⋯,tk​,k≥3);常见算法:SoftmaxKNN、决策树等;

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

  • One-Versus-One(OvO):一对一
  • One-Versus-All / One-Versus-the-Rest(OvA/OvR): 一对多
  • Error Correcting Output codes(纠错码机制):多对多(MvM)

1.3 多标签算法问题

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

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

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

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

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

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

详细介绍,请阅读:多标签分类算法原理及代码、多分类及多标签分类算法


2 多分类问题

2.1 OvO

OvO(一对一,One vs One):假如数据 DDD 中有 NNN 个类别,将 NNN 个类别进行两两配对,会得到 N(N−1)/2N(N-1)/2N(N−1)/2 个二分类器。在预测中,将测试样本输入这 N(N−1)/2N(N-1)/2N(N−1)/2 个二分类器中得到相应个数的预测结果,然后再将被预测结果数最多的(Voting)作为最终分类结果。

        下面举个例子,当有4个类别的时候,首先把类别两两组合(6种组合)。组合完之后,其中一个类别作为正类,另一个作为负类(这个正负只是相对而言,目的是转化为二分类)。然后对每个二分类器进行训练。可以得到6个二分类器。然后把测试样本在6个二分类器上面进行预测。从结果上可以看到,类别1被预测的最多,故测试样本属于类别1。

2.2 OvR

OvR(一对其余,One vs Rest): 将一个类别作为正例,其余所有类别作为反例,这样 NNN 个类别可以产生 NNN 个二分类器,将测试样本输入这些二分类器中中得到 NNN 个预测结果,如果仅有一个分类器预测为正类,则将对应的预测结果作为最终预测结果。如果有多个分类器预测为正类,则选择置信度最大的类别作为最终分类结果。

        下面举个例子,当有4个类别的时候,每次把其中一个类别作为正类别,其余作为负类别,共有4种组合,对于这4中组合进行分类器的训练,我们可以得到4个分类器。对于测试样本,放进4个分类器进行预测,仅有一个分类器预测为正类,于是取这个分类器的结果作为预测结果,分类器2预测的结果是类别2,于是这个样本便属于类别2。

其实,有人会有疑问,那么预测为负类的分类器就不用管了吗?是的,因为预测为负类的时候有多种可能,无法确定,只有预测为正类的时候才能唯一确定属于哪一类。比如对于分类器3,分类结果是负类,但是负类有类别1,类别2,类别4三种,到底属于哪一种?

2.3 OvO与OvR的对比

OvR只需训练 NNN 个分类器,而OvO需训练 N(N−1)/2N(N - 1)/2N(N−1)/2 个分类器, 因此,OvO的存储开销和测试时间开销通常比OvR更大。但在训练时,OvR的每个分类器均使用全部训练样例,而OvO的每个分类器仅用到两个类的样例,因此,在类别很多时,OvO的训练时间开销通常比OvR更小。至于预测性能,则取决于具体的数据分布,在多数情形下两者差不多。

综上:

  • OvO的优点是,在大数据集和和类别较多的情况下,训练时间要比OvR少。缺点是,分类器个数多。
  • OvR的优点是,分类器个数少,存储开销和测试时间比OvO少。缺点是,类别很多时,训练时间长。

补充:
        有的地方也会提到一种改进的“一对其余”方式,假设一个多分类问题的类别为 {1,2,⋯,

多分类任务和 Softmax 回归相关推荐

  1. python机器学习案例系列教程——逻辑分类/逻辑回归LR/一般线性回归(softmax回归)

    全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 线性函数.线性回归 参考:http://blog.csdn.net/luanpeng825485697/article/details ...

  2. Lesson 8.5 SOFTMAX回归

    三.多分类神经网络:Softmax回归 1 认识softmax函数 之前介绍分类神经网络时,我们只说明了二分类问题,即标签只有两种类别的问题(0和1,猫和狗). 虽然在实际应用中,许多分类问题都可以用 ...

  3. pytorch学习笔记(六):softmax回归

    文章目录 前言 1. 分类问题 2. softmax回归模型 3. 单样本分类的矢量计算表达式 4. 小批量样本分类的矢量计算表达式 5. 交叉熵损失函数 6. 模型预测及评价 小结 前言 模型输出可 ...

  4. 【机器学习】对数线性模型之Logistic回归、SoftMax回归和最大熵模型

    来源 | AI小白入门 作者 | 文杰 编辑 | yuquanle 完整代码见:原文链接 1. Logistic回归 ​ 分类问题可以看作是在回归函数上的一个分类.一般情况下定义二值函数,然而二值函数 ...

  5. 3.4 Softmax回归【李沐动手学深度学习】

    目录 1. 从回归到多分类--均方损失 Softmax回归 2. Softmax和交叉熵损失 损失 梯度 3. 损失函数 3.1 均方损失(L2 Loss) 3.2 绝对值损失函数(L1 Loss) ...

  6. 梯度下降法实现softmax回归MATLAB程序

    梯度下降法实现softmax回归MATLAB程序 版权声明:本文原创,转载须注明来源. 解决二分类问题时我们通常用Logistic回归,而解决多分类问题时若果用Logistic回归,则需要设计多个分类 ...

  7. 经典机器学习方法(2)—— Softmax 回归

    参考:动手学深度学习 注:本文是 jupyter notebook 文档转换而来,部分代码可能无法直接复制运行! 前文介绍的 经典机器学习方法(1)-- 线性回归 适用于连续值预测问题(回归问题),本 ...

  8. 广义线性模型?链接函数?sigmoid和softmax?Logistic处理多分类问题?logistic回归处理超大数据?使用logistic和randomsearch进行组合获取最优参数组合、优缺点

    广义线性模型?链接函数?sigmoid和softmax?Logistic处理多分类问题?logistic回归处理超大数据?使用logistic和randomsearch进行组合获取最优参数组合.优缺点 ...

  9. Softmax回归——logistic回归模型在多分类问题上的推广

    Softmax回归 Contents [hide] 1 简介 2 代价函数 3 Softmax回归模型参数化的特点 4 权重衰减 5 Softmax回归与Logistic 回归的关系 6 Softma ...

最新文章

  1. Android Fragment 解析(下)
  2. php把时间变成整数,php怎么将字符串转为整数
  3. Shell命令-磁盘与文件系统之dumpe2fs、dump
  4. socket编程实例_NIO之网络编程源码阅读
  5. CSS 强制换行和禁止换行学习
  6. 安装linux到服务器配置,CentOS 6.3 服务器安装配置
  7. linux 退出java,linux kill命令下如何优雅的退出java程序
  8. 洛谷2661 信息传递 三倍经验?
  9. sqlserver200864位下载_sql server 2008 r2中文版
  10. 国家地区标准代码(国际域名缩写)
  11. plecs使用C-Script模块实现线性插值算法
  12. LogSeq 表格合并单元格
  13. 应用StarRocks实现存储引擎的收敛,保障高查询并发及低延迟要求
  14. ubuntu teamviewer
  15. 独立站卖家如何利用Google广告引流
  16. 用 django 构建翻译网站——软件工程课程设计
  17. 干货!小样本分子性质预测新方法——性质感知的关系网络
  18. python pygame模块按键响应
  19. 自然语言处理入门-第4章 隐马尔可夫模型与序列标注
  20. Java中间件有哪些

热门文章

  1. MySQL数据库创建商品表
  2. 二次极限与二重极限的关系
  3. python可视化stackplot函数用法-绘制堆积面积图。
  4. 返修售后服务管理网站设计与源码
  5. java将古诗竖排_写一个java程序 将一首古诗竖着排序从右往左读
  6. java使用stream对日期排序
  7. [芬享] 佛家四大经典爱情故事
  8. 【转】蒙哥马利算法学习
  9. 产品经理培训班大概多少钱
  10. 计算机毕业设计Java-ssmMVC的时鲜蔬菜配送系统源码+系统+数据库+lw文档