多分类学习(OvO、OVR、MVM 原理区别)

本文介绍了多分类问题的解决策略,包括OvO(一对一)、OvR(一对剩余)和MvM(多对多)策略。OvO拆分数据进行两两组合,训练多个分类器,预测时采用投票法。OvR将一类作为正例,其他为反例,只有一个分类器将其预测为正例则属于该类。MvM则更为复杂,采用ECOC技术,通过编码距离判断类别,通常效果优于OvR。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  多分类问题解决思路,一般来说,用二分类学习器解决多分类问题,基本思想是先拆分后集成,也就是先将数据集进行拆分,然后多个数据集可训练多个模型,然后再对多个模型进行集成。这里所谓集成,指的是使用这多个模型对后续新进来数据的预测方法。

  具体来看,依据该思路一般有三种实现策略,分别是“一对一”(One vs Ons,简称OvO)、“一对剩余”(One vs Rest,简称OvR)和“多对多”(Many vs Many,加成MvM)。接下来我们逐个讨论。

1.OvO策略

  • 拆分策略

  OvO的拆分策略比较简单,基本过程是将每个类别对应数据集单独拆分成一个子数据集,然后令其两两组合,再来进行模型训练。例如,对于上述四分类数据集,根据标签类别可将其拆分成四个数据集,然后再进行两两组合,总共有6种组合,也就是 C 4 2 C^2_4 C42种组合。拆分过程如下所示:

81

然后在这6个新和成的数据集上,我们就能训练6个分类器。当然,如果是N分类问题,则需要训练 C N 2 = N ( N − 1 ) 2 C^2_N=\frac{N(N-1)}{2} CN2

### 分类学中的MvM方法 分类学(Multi-class Classification)是指目标变量具有两个以上离散取值的学任务。在机器学领域,解决分类问题的一种常见策略是通过分解技术将其转化为个二分类子问题来处理。这种方法通常被称为“一对其他”(One-vs-Rest, OvR)、“一对一”(One-vs-One, OvO),或者更通用的形式称为“数投票法”(Majority Voting Method, MvM)。以下是有关MvM方法的具体介绍: #### 什么是MvM方法? MvM是一种基于集成学的思想,用于将复杂的分类问题拆解成若干个简单的二分类问题[^1]。具体而言,在每一轮训练过程中构建一个二分类器,该分类器负责区分某两类样本,而忽略其余类别。最终预测阶段则通过对所有基分类器的结果进行加权平均或简单投票等方式得到最终决策。 #### 实现方式 Scikit-learn提供了种实现上述思路的功能组件。例如`sklearn.multiclass.OneVsRestClassifier`可以用来执行one-vs-rest(OvR)模式下的标签或类别分类;同样地也有针对特定场景优化过的算法如随机森林(Random Forests),支持向量机(Support Vector Machines,SVMs)[^2]等可以直接应用于类别的数据集上无需额外转换操作即可完成建模过程。 #### 示例代码展示如何利用SVC配合OvR机制来进行三元以上的分类任务: ```python from sklearn import datasets from sklearn.multiclass import OneVsRestClassifier from sklearn.svm import SVC iris = datasets.load_iris() X, y = iris.data, iris.target classifier = OneVsRestClassifier(SVC(kernel='linear')) classifier.fit(X, y) predicted_labels = classifier.predict([[0.1, 0.2, 0.3, 0.4]]) print(predicted_labels) ``` 此段脚本展示了加载鸢尾花数据集并应用线性核函数的支持向量机作为基础估计器创建了一个适用于三个不同种类花卉识别系统的模型实例化对象,并完成了测试输入样例所属类型的判定工作流程演示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值