当前位置: 首页 > news >正文

学习笔记十:多分类学习

1. 基本概念

1.1 多分类学习问题

问题背景

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

核心思想

多分类学习的基本思路是拆解法(decomposition method),即将多分类任务拆解为若干个二分类任务求解。具体来说:

  1. 先对问题进行拆分
  2. 然后为拆出的每个二分类任务训练一个分类器
  3. 在测试时,对这些分类器的预测结果进行集成以获得最终的多分类结果

关键问题

  • 如何对多分类任务进行拆分?
  • 如何对多个分类器进行集成?

1.2 拆解策略

三种经典策略

  • 一对一(One vs. One,简称OvO)
  • 一对其余(One vs. Rest,简称OvR)
  • 多对多(Many vs. Many,简称MvM)

2. 多分类学习方法

2.1 一对一(OvO)

方法

给定数据集 D = {(x₁, y₁), (x₂, y₂), ..., (xₘ, yₘ)},其中 yᵢ ∈ {C₁, C₂, ..., Cₙ}

OvO将这 N 个类别两两配对,从而产生 N(N-1)/2 个二分类任务。例如,OvO会为区分类别 CᵢCⱼ 训练一个分类器,该分类器把 D 中的 Cᵢ 类样例作为正例,Cⱼ 类样例作为反例。

测试阶段

在测试时,新样本将同时提交给所有 N(N-1)/2 个分类器,于是我们将得到 N(N-1)/2 个分类结果,最终结果可通过投票产生:把被预测得最多的类别作为最终分类结果。

特点

  • 分类器数量:需要训练 N(N-1)/2 个分类器
  • 存储和测试开销:一般比OvR大
  • 训练开销:OvO的每个分类器只用到两个类的样例,而OvR的每个分类器需用到所有训练样例。因此,当类别数很多时,OvO的训练开销通常比OvR小
  • 预测性能:预测性能取决于数据分布,但在多数情况下两者差不多

2.2 一对其余(OvR)

方法

OvR则是每次将一个类的样例作为正例、所有其他类的样例作为反例来训练 N 个分类器。

测试阶段

在测试时,若仅有一个分类器预测为正类,则对应的类别标记作为最终分类结果。若有多个分类器预测为正类,则通常考虑各分类器的预测置信度,选择置信度最大的类别标记作为分类结果。

特点

  • 分类器数量:需要训练 N 个分类器
  • 存储和测试开销:一般比OvO小
  • 训练开销:每个分类器需用到所有训练样例,当类别数很多时,训练开销通常比OvO大
  • 预测性能:预测性能取决于数据分布,但在多数情况下与OvO差不多

2.3 多对多(MvM)

方法

MvM是每次将若干个类作为正类,若干个其他类作为反类。显然,OvO和OvR是MvM的特例。

关键问题

MvM的正、反类构造必须有特殊的设计,不能随意选取。

常用技术

纠错输出码(Error Correcting Output Codes,简称ECOC)是一种最常用的MvM技术。

2.4 纠错输出码(ECOC)

基本思想

ECOC将编码的思想引入类别拆分,并让它在解码过程中具有容错性。

编码阶段

N 个类别做 M 次划分,每次划分将一部分类别划为正类,另一部分划为反类,从而形成一个二分类训练集。这样一共产生 M 个训练集,可训练出 M 个分类器。

解码阶段

M 个分类器分别对测试样本进行预测,这些预测标记组成一个编码。将这个预测编码与每个类别各自的编码进行比较,返回其中距离最小的类别作为最终预测结果。

编码矩阵

类别划分通过编码矩阵(coding matrix)指定。编码矩阵有两种常见形式:

  • 二元码:每个类别被指定为正例或反例
  • 三元码:除了正例、反例,还有"停用类"(即该分类器不使用该类别的样本)

为什么叫"纠错输出码"?

在测试阶段,ECOC编码对分类器的错误有一定的容忍和修正能力。例如,即使某个分类器预测错误,只要其他分类器的预测正确,最终仍可能得到正确的分类结果。

特点

  • 纠错能力:对于同一个学习任务,ECOC编码越长,纠错能力越强
  • 计算开销:编码越长,意味着需要训练的分类器越多,计算、存储开销都会增大
  • 理论最优性:对于有限类别数,可能的组合数目是有限的,码长超过一定范围后就失去了意义
  • 编码距离:理论上,对同等长度的编码,理论上任意两个类别之间的编码距离越远,则纠错能力越强

实际考虑

学习问题涉及很多因素,例如将多个类拆解为两个"类别子集",不同拆解方式所形成的两个类别子集的区分难度往往不同。于是,一个理论纠错性质很好、但导致的二分类问题较难的编码,与另一个理论纠错性质差一些、但导致的二分类问题较简单的编码,最终产生的模型性能孰强孰弱很难说。因此,在实际应用中,往往不需要获得理论最优编码,因为非最优编码在实践中往往也能产生足够好的结果。

3. 总结

多分类学习是机器学习中的重要问题。当遇到多分类任务时,通常采用拆解法,将多分类任务拆解为若干个二分类任务求解。

三种经典拆解策略

  • OvO(一对一):将 N 个类别两两配对,产生 N(N-1)/2 个二分类任务,通过投票决定最终结果
  • OvR(一对其余):每次将一个类作为正例,其余类作为反例,训练 N 个分类器
  • MvM(多对多):每次将若干个类作为正类,若干个其他类作为反类,常用ECOC技术

方法选择:OvO和OvR在预测性能上通常差不多,但OvO的训练开销通常更小,OvR的存储和测试开销通常更小。ECOC具有纠错能力,但计算开销较大。在实际应用中,应根据具体任务的特点、类别数、样本量等因素选择合适的方法。

http://www.dtcms.com/a/617814.html

相关文章:

  • 【实战案例】基于dino-4scale_r50_8xb2-36e_coco的棉田叶片病害识别与分类项目详解
  • opencv学习笔记9:基于CNN的mnist分类任务
  • 分布式系统中MPSC队列的内存回收策略适配避坑
  • Git笔记---分支相关操作
  • 基于YOLOv8的汽车目标检测系统实现与优化_含多种车型识别与自动驾驶应用场景
  • 广东省建设工程协会网站如何查看一个网站是不是用h5做的
  • 开发STM32日记1:安装软件、配置软件(芯片为STM32F103C8T6 )
  • 【Git】处理报错原因
  • 基于Bboss框架的ElasticSearch并发更新版本冲突问题解决
  • Highcharts常见问题解析(5):如何将多个图表导出到同一张图片或 PDF?
  • 什么是中间件?必须要有中间件吗?有哪些国产中间件厂商?
  • 第七章深度解析:从零构建智能体框架——模块化设计与全流程落地指南
  • 机器视觉3D无序抓取如何确保抓取精度,需要从以下五个核心方面入手,形成一个闭环的控制系统
  • Git Bisect - Git Commit 故障排查利器使用详解
  • 青岛科技街网站建设不懂外贸做外贸网站好做吗
  • 2511C++,CTAD简化回调
  • 【ros2】ROS2 C++参数设置指南(含跨节点修改方法)
  • STM32通信接口----USART
  • 解决Web游戏Canvas内容在服务器部署时的显示问题
  • 我爱学算法之—— 哈希
  • Linux字符设备驱动模型
  • C++ List 容器详解:迭代器失效、排序与高效操作
  • 婚纱网站wordpress微商模板
  • GPT问答:泛型、哈希表与缓存、命名参数。251116
  • 免费学软件的自学网站保健品网站建设流程
  • 网络访问流程:HTTPS + TCP + IP
  • 智能体AI、技术浪潮与冲浪哲学
  • 基于 PyTorch + BERT 意图识别与模型微调
  • 沃尔沃公司网站建设微信官方网站建设
  • 网站备案域名怎么买找在农村适合的代加工