多分类任务和 Softmax 回归
在我们解决多类线性可分问题的时候,常会遇到单标签二分类问题、单标签多分类问题、多标签算法问题,下面分别讨论。而前面讲的线性分类模型,原则上只能解决二分类问题,但通过一些技巧就可以解决多分类问题。
1 简介
1.1 单标签二分类问题
单标签二分类这种问题是我们最常见的算法问题,主要是指标签(label)的取值只有两种,并且算法中只有一个需要预测的label
;直白来讲就是每个实例的可能类别只有两种(A or B);此时的分类算法其实是在构建一个分类线将数据划分为两个类别。常见的算法:Logistic
、SVM
、KNN
、决策树等。
1.2 单标签多分类问题
单标签多分类问题其实是指待预测的label
只有一个,但是label
的取值可能有多种情况;直白来讲就是每个实例的可能类别有 KKK 种(t1,t2,⋯,tk,k≥3t_1, t_2, \cdots, t_k, k≥3t1,t2,⋯,tk,k≥3);常见算法:Softmax
、KNN
、决策树等;
在实际的工作中,如果是一个多分类的问题,我们可以将这个待求解的问题转换为二分类算法的延伸,即将多分类任务拆分为若干个二分类任务求解,具体的策略如下:
- 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 回归相关推荐
- python机器学习案例系列教程——逻辑分类/逻辑回归LR/一般线性回归(softmax回归)
全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 线性函数.线性回归 参考:http://blog.csdn.net/luanpeng825485697/article/details ...
- Lesson 8.5 SOFTMAX回归
三.多分类神经网络:Softmax回归 1 认识softmax函数 之前介绍分类神经网络时,我们只说明了二分类问题,即标签只有两种类别的问题(0和1,猫和狗). 虽然在实际应用中,许多分类问题都可以用 ...
- pytorch学习笔记(六):softmax回归
文章目录 前言 1. 分类问题 2. softmax回归模型 3. 单样本分类的矢量计算表达式 4. 小批量样本分类的矢量计算表达式 5. 交叉熵损失函数 6. 模型预测及评价 小结 前言 模型输出可 ...
- 【机器学习】对数线性模型之Logistic回归、SoftMax回归和最大熵模型
来源 | AI小白入门 作者 | 文杰 编辑 | yuquanle 完整代码见:原文链接 1. Logistic回归 分类问题可以看作是在回归函数上的一个分类.一般情况下定义二值函数,然而二值函数 ...
- 3.4 Softmax回归【李沐动手学深度学习】
目录 1. 从回归到多分类--均方损失 Softmax回归 2. Softmax和交叉熵损失 损失 梯度 3. 损失函数 3.1 均方损失(L2 Loss) 3.2 绝对值损失函数(L1 Loss) ...
- 梯度下降法实现softmax回归MATLAB程序
梯度下降法实现softmax回归MATLAB程序 版权声明:本文原创,转载须注明来源. 解决二分类问题时我们通常用Logistic回归,而解决多分类问题时若果用Logistic回归,则需要设计多个分类 ...
- 经典机器学习方法(2)—— Softmax 回归
参考:动手学深度学习 注:本文是 jupyter notebook 文档转换而来,部分代码可能无法直接复制运行! 前文介绍的 经典机器学习方法(1)-- 线性回归 适用于连续值预测问题(回归问题),本 ...
- 广义线性模型?链接函数?sigmoid和softmax?Logistic处理多分类问题?logistic回归处理超大数据?使用logistic和randomsearch进行组合获取最优参数组合、优缺点
广义线性模型?链接函数?sigmoid和softmax?Logistic处理多分类问题?logistic回归处理超大数据?使用logistic和randomsearch进行组合获取最优参数组合.优缺点 ...
- Softmax回归——logistic回归模型在多分类问题上的推广
Softmax回归 Contents [hide] 1 简介 2 代价函数 3 Softmax回归模型参数化的特点 4 权重衰减 5 Softmax回归与Logistic 回归的关系 6 Softma ...
最新文章
- Android Fragment 解析(下)
- php把时间变成整数,php怎么将字符串转为整数
- Shell命令-磁盘与文件系统之dumpe2fs、dump
- socket编程实例_NIO之网络编程源码阅读
- CSS 强制换行和禁止换行学习
- 安装linux到服务器配置,CentOS 6.3 服务器安装配置
- linux 退出java,linux kill命令下如何优雅的退出java程序
- 洛谷2661 信息传递 三倍经验?
- sqlserver200864位下载_sql server 2008 r2中文版
- 国家地区标准代码(国际域名缩写)
- plecs使用C-Script模块实现线性插值算法
- LogSeq 表格合并单元格
- 应用StarRocks实现存储引擎的收敛,保障高查询并发及低延迟要求
- ubuntu teamviewer
- 独立站卖家如何利用Google广告引流
- 用 django 构建翻译网站——软件工程课程设计
- 干货!小样本分子性质预测新方法——性质感知的关系网络
- python pygame模块按键响应
- 自然语言处理入门-第4章 隐马尔可夫模型与序列标注
- Java中间件有哪些