前往小程序,Get更优阅读体验!
立即前往
社区首页 >专栏 >机器学习 学习笔记(7)多分类学习与类别不平衡

机器学习 学习笔记(7)多分类学习与类别不平衡

作者头像
发布于 2018-09-03 10:15:44
发布于 2018-09-03 10:15:44
2.9K0
举报
文章被收录于专栏:WD学习记录WD学习记录

多分类学习

现实中常遇到多分类学习任务,有些二分类学习方法可以直接推广到多分类,但在更多情况下,是基于一些基本策略,利用二分类学习器来解决多分类问题。

考虑N个类别C1,C2,C3,....,CN,多分类学习的基本思路是拆解法,即将多分类任务拆为若干个二分类任务求解,具体来说,先对问题进行拆分,然后为拆出的每个二分类任务训练一个分类器,在测试时,对这些分类器的预测结果进行集成以获得最终的多分类结果,关键是如何对多分类任务进行拆分,以及如何对多个分类器进行集成。

拆分策略

最经典的拆分策略有三种:一对一One vs. One,简称OvO,一对其余One vs. Rest,简称OvR,多对多Many vs. Many,简称MvM。

给定N个分类,OvO将这个N个类别两两配对,从而产生N(N-1)/2个二分类任务,例如OvO将为区分类别Ci和Cj训练一个分类器,该分类吧D中所有的Ci类昂本作为正例,Cj类样本作为反例,在测试阶段,新样本将同时提交给所有分类器,于是将得到N(N-1)/2个分类结果,最终结果可以通过投票产生,即把预测得最多的类别作为最终分类结果。

OvR每次将一个类的样例作为正例,所有其他类的样例作为反例来训练N个分类器,在测试时若仅有一个分类器预测为正例,则其对应的类别标记作为最终分类结果,若有多个分类器预测为正例,则通过考虑各预测分类器的预测置信度,选择置信度最大的类别标记作为分类结果。

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

MvM是每次将若干个类作为正类,若干个其他类作为反类。OvO和OvR是MvM的特例。MvM的正类、反类构造必须有特殊的设计,不能随意选择,一种最常见的MvM技术,纠错输出码(Error Correcting Output Codes,简称ECOC)。

ECOC将编码的思想引入类别拆分,并尽可能在解码过程中具有容错性,ECOC工作过程主要分为两步:

  • 编码:对N个类别做M次划分,每次划分将一部分类别作为正类,一部分划分为反类,从而形成一个二分类训练集,这样一共产生M个训练集,可训练出M个分类器。
  • 解码:M个分类器分别对测试样本进行预测,这些预测标记组成一个编码,将这个预测编码与每个类别的各自的编码进行比较,返回其中距离最小的类别作为最终预测结果。

类别划分主要通过“编码矩阵”指定,编码矩阵有多种形式,常见的主要有二元码和三元码。二元码将每个类别分别指定为正类、反类,三元码在正反类之外,还可以执行停用类。

称为纠错输出码的原因是,在测试阶段,ECOC编码对分类器的错误有一定的容忍和修正能力。对同一个学习任务,ECOC编码越长,纠错能力越强,编码越长,意味着所需训练的分类器越多,计算、存储开销都会增大,另一方面,对有限类别数目可能的组合数目是有限的,码长超过一定范围后就失去了意义。

对同等长度的编码,理论上来说,任意两个类别之间的编码距离越远,则纠错能力越强。

类别不平衡问题

类别不平衡就是指分类任务中不同类别的训练样例数目差别很大的情况。

几率

反应了正例可能性与反例可能性之比值,阈值设置为0.5表明分类器认为真实正、反例可能性相同,即

,预测为正例。

当训练集中正、反例数目不同时,令m+表示正例,m-表示反例,则:

,预测为正。调整为:

,这就是类别不平衡学习的一个基本策略,再缩放。

再缩放的思想简单,但实际操作却不平凡,因为训练集是真实样本的无偏采样这个假设往往不成立。

有三类做法:欠采样、过采样、阈值移动

欠采样即直接对训练集中样例数目多的分类进行欠采样,使得正、反例数目接近。

过采样对训练集中的样例数目少的分类进行过采样,使得正、反例数目接近。

阈值移动为直接基于原始训练集进行学习,但在用训练好的分类器再进行预测时,将

嵌入决策过程中。

欠采样法的时间开销往往远小于过采样法,因为前者丢弃了很多反例,使得分类器训练集远小于初始训练集,而过采样法增加了很多正例,其训练集远远大于初始训练集。过采样法不能简单地对初始正例样本今次那个重复采样,否则会导致严重过拟合。过采样法的代表性算法SMOTE是同对训练集中的正例进行插值来产生额外的正例。欠采样法如果随机丢弃反例,可能会丢失一些重要信息,欠采样法的代表性算法是利用集成学习机制,将反例划分为若干个集合供不同的学习器使用,全局来看不会丢失重要信息。

参考

  1. 机器学习
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年08月12日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
机器学习13:多分类学习
有些情况下,二分类学习方法可以推广到多分类问题中;但是多数情况下需要基于一定的策略,利用二分类学习器解决多分类问题。
用户5473628
2019/08/08
6.1K0
Data Whale 吃瓜日记 西瓜书第三章
线性模型实际上就是多元一次函数,输入和输出的简单映射,而其他非线性模型可以通过各种方法变换为与线性模型相似的形式,例如:对数线性回归、对数几率回归。对数几率回归可以通过多种方式求最优解,如梯度下降法、牛顿法
TomoriNao
2023/12/18
1380
《机器学习》-- 第三章 广义线性模型
,这时衍生的线性模型(式3.14)如下所示,实际上就是相当于将指数曲线投影在一条直线上,如下图所示:
fireWang
2019/09/19
9040
《机器学习》-- 第三章 广义线性模型
线性模型
给定数据集D={(x_1,y_1),(x_2,y_2),…,(x_m,y_m)};x_i=(x_{i1};x_{i2};…;x_(id)),y_i \in R
皮大大
2021/03/02
5310
机器学习中的类不平衡问题
如果不同类别的训练样例数目稍有差别,通常影响不大,但若差别很大,则会对学习过程造成困扰。例如有998个反例,但正例只有2个,那么学习方法只需返回一个永远将新样本预测为反例的学习器,就能达到99.8%的精度;然而这样的学习器往往没有价值,因为它不能预测出任何正例。
狼啸风云
2019/08/29
6100
机器学习中的类不平衡问题
《机器学习》笔记-线性模型(3)
作者:刘才权 编辑:李文臣 写在前面 1 如今机器学习和深度学习如此火热,相信很多像我一样的普通程序猿或者还在大学校园中的同学,一定也想参与其中。不管是出于好奇,还是自身充电,跟上潮流,我觉得都值得试一试。对于自己,经历了一段时间的系统学习(参考《机器学习/深度学习入门资料汇总》),现在计划重新阅读《机器学习》[周志华]和《深度学习》[Goodfellow et al]这
机器学习算法工程师
2018/03/06
1K0
《机器学习》笔记-线性模型(3)
[深度学习技巧]·数据类别不平衡问题处理
如果不同类别的训练样例数目稍有差别,通常影响不大,但若差别很大,则会对学习过程造成困扰。例如有998个反例,但是正例只有2个,那么学习方法只需要返回一个永远将新样本预测为反例的学习器,就能达到99.8%的精度;然而这样的学习器往往没有价值,因为它不能预测出任何正例。
小宋是呢
2019/06/27
3.6K0
[深度学习技巧]·数据类别不平衡问题处理
《机器学习》学习笔记(三)——线性模型
分类的核心就是求出一条直线w的参数,使得直线上方和直线下方分别属于两类不同的样本
荣仔_最靓的仔
2021/02/02
1.6K0
《机器学习》学习笔记(三)——线性模型
使用ECOC编码提高多分类任务的性能
逻辑回归、支持向量机等机器学习算法可以对二元数据集进行分类,但是无法处理超过 2 个目标类标签的多类分类任务。对于多类分类或多标签分类任务,我们需要使用某些技巧或者其他机器学习算法来训练数据集。
deephub
2021/11/23
8960
机器学习:如何解决类别不平衡问题
类别不平衡是机器学习中的一个常见问题,尤其是在二元分类领域。当训练数据集的类分布不均时会发生这种情况,从而导致训练模型存在潜在偏差。不平衡分类问题的示例包括欺诈检测、索赔预测、违约预测、客户流失预测、垃圾邮件检测、异常检测和异常值检测。为了提高我们模型的性能并确保其准确性,解决类不平衡问题很重要。
数据科学工厂
2023/02/27
1.3K0
机器学习:如何解决类别不平衡问题
logistics判别与线性模型中的4个问题
之前说过,机器学习的两大任务是回归和分类,上章的线性回归模型适合进行回归分析,例如预测房价,但是当输出的结果为离散值时,线性回归模型就不适用了。我们的任务是:将回归分析中的实数值转化为离散值或者对于离散值的概率。
double
2018/07/31
4910
图像识别之美食挑战赛 Ⅱ:由二分类到多分类,增加的不止是一点复杂度......
相较第一场美食识别挑战赛,这次推出的比赛 2.0 难度略有增加。除了食材种类的成倍增加之外,四种食材的图片辨识度也有所降低。这对于专注于图像识别的开发者而言,相信是非常值得尝试的一次挑战!
AI研习社
2020/02/21
4790
机器学习笔记之sklearn的逻辑回归Logistics Regression实战
上次介绍的逻辑回归的内容,基本都是基于二分类的。那么有没有办法让逻辑回归实现多分类呢?那肯定是有的,还不止一种。
Jetpropelledsnake21
2021/01/21
2K0
机器学习笔记之python实现支持向量机SVM算法样例
相比于逻辑回归,在很多情况下,SVM算法能够对数据计算从而产生更好的精度。而传统的SVM只能适用于二分类操作,不过却可以通过核技巧(核函数),使得SVM可以应用于多分类的任务中。
Jetpropelledsnake21
2021/01/02
2.9K0
机器学习笔记之python实现支持向量机SVM算法样例
机器学习入门 9-8 OvR与OvO
本系列是《玩转机器学习教程》一个整理的视频笔记。本小节主要介绍能够将二分类算法解决多分类任务的两种方法OvR和OvO,并通过sklearn封装的逻辑回归实现OvR和OvO,最后使用sklearn实现通用二分类算法的OvR和OvO。
触摸壹缕阳光
2020/03/26
4.1K0
机器学习入门 9-8 OvR与OvO
极端类别不平衡数据下的分类问题研究综述 | 硬货
不平衡学习是机器学习问题的一个重要子域,其主要关注于如何从类别分布不均衡的数据中学习数据的模式。在这篇文章中我们主要关注不平衡分类问题,特别地,我们主要关注类别极端不平衡场景下的二分类问题所面临的困难。
磐创AI
2019/06/19
9220
机器学习基础:类别不平衡问题处理方法汇总及实际案例解析
原文:https://www.cnblogs.com/shenggang/p/12133016.html
统计学家
2020/08/28
8.5K0
机器学习基础:类别不平衡问题处理方法汇总及实际案例解析
用R语言实现对不平衡数据的四种处理方法
在对不平衡的分类数据集进行建模时,机器学习算法可能并不稳定,其预测结果甚至可能是有偏的,而预测精度此时也变得带有误导性。那么,这种结果是为何发生的呢?到底是什么因素影响了这些算法的表现? 在不平衡的数据中,任一算法都没法从样本量少的类中获取足够的信息来进行精确预测。因此,机器学习算法常常被要求应用在平衡数据集上。那我们该如何处理不平衡数据集?本文会介绍一些相关方法,它们并不复杂只是技巧性比较强。 本文会介绍处理非平衡分类数据集的一些要点,并主要集中于非平衡二分类问题的处理。一如既往,我会尽量精简地叙述,在文
机器学习AI算法工程
2018/03/14
2.5K0
用R语言实现对不平衡数据的四种处理方法
数据不平衡问题
对于一些二分类问题或者多分类问题,部分类别数据相较于其它类别数据而言是要小得多的,这种现象就是数据不平衡问题。数据不平衡问题会导致什么情况呢?假如是基于一些特征判断病人是否患有该疾病,且该疾病是一个小概率获得的疾病,假设概率为0.0001, 那么表明有10000个来看病的人中只有一个人患有该疾病,其余9999个人都是正常病人。如果用这样的一批数据进行训练模型算法,即使该模型什么都不学,都判定为正常人,其准确率高达0.9999, 完全满足上线要求。但我们知道,这个模型是不科学的,是无用的模型。这种数据分布严重不平衡的情况下,模型将具有严重的倾向性,倾向于数据样本的多的类别,因为模型每次猜样本多对应的类别的对的次数多。因此,如果直接将严重数据不平衡的数据拿来直接训练算法模型,将会遇到上述问题。一般在10倍以上可以判定为数据不平衡问题。
用户3578099
2023/02/14
8150
数据不平衡问题
《机器学习》-- 第二章:模型评估与选择
(1) 误差:学习器的实际预测输出与样本的真实输出之间的差异;其中学习器在训练集上的误差称为”训练误差“(training error),在新样本上的误差称为”泛化误差“(generalization error)。值得一提的是,学习器就是在训练集上训练出来的,但实际上在回到训练集上对样本预测结果时,仍有误差。(即结果值与标记值不同)
fireWang
2019/07/31
9510
相关推荐
机器学习13:多分类学习
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档