二分类如何推广到多分类问题

时间:2021-08-25 18:27:48   收藏:0   阅读:8

0 导读

现实中会遇到多分类任务。虽然我们可以用神经网络直接建模多分类问题,但在机器学习的早期,一般模型只能解决二分类问题,因此有必要了解如何将二分类问题推广到多分类问题。

1 思路

考虑\(N\)个类别\(C_{1},C_{2},...C_{N}\),多分类学习的基本思路是“拆解法”,即将多分类任务拆解为若干个二分类任务。具体地,先对原问题进行拆分,然后为拆分出的每个二分类任务训练一个分类器;在测试时,对这些分类器的预测结果进行集成以获得最终的多分类结果。由以上分析可知,关键是如何拆分以及如何集成。对于给定数据集:

\[D= \left \{ (x_{1},y_{1}),(x_{2},y_{2}),...,(x_{m},y_{m}) \right \} \]

\[y_{i}\in \left \{ C_{1},C_{2},...,C_{N} \right \} \]

一般的拆分策略有三种:

1.1 一对一

OvO将N个类别两两配对,从而产生\(N(N-1)/2\)个二分类任务,例如OvO将为区分类别\(C_{i}\)\(C_{j}\)训练一个分类器,该分类器把\(D\)中的\(C_{i}\)类样例作为正例,\(C_{j}\)类样例作为反例。在测试阶段,新样本同时交给所有分类器,于是可得到\(N(N-1)/2\)个分类结果,把预测的最多的类别作为最终分类结果。

1.2 一对其余

OvR每次将一个类别的样例作为正例、所有其他类的样例作为反例,这样可以训练出\(N\)个分类器。在测试阶段若只有一个分类器预测为正例,则对应的类别标记作为最终分类结果。若有多个分类器预测为正例,则通常考虑各分类器预测的置信度,将置信度最大的类别标记作为最终分类结果。

技术分享图片

上图是OvO和OvR的示意图。易知,OvR需要训练N个分类器,OvO需要训练N(N-1)/2个分类器,素偶i,OvO的存储开销和测试开销比OvR更大。但在训练阶段,OvO的没个分类器只用到了一部分数据集,而OvR的每个分类器都用到了全部的数据集,因此,OvO的训练开销比OvR更小。在预测性能方面,两者通常是差不多的。

1.3 多对多

MvM每次将若干个类作为正类,若干个其他类作为反类。MvM的正反类构造通常用一种成为“纠错输出吗”(ECOC)的技术。ECOC是将编码的思想引入类别拆分中,并尽可能在解码过程中具有容错性。ECOC的工作过程主要分为两步:

2 类别不平衡问题

类别不平衡问题是指分类任务中不同类别的训练样本数量差别很大。即使原始数据集中各种类别的样本数量相差不大,但是进行OvO或OvR划分的时候也很容易出现类别不平衡的情况。类别不平衡会导致我们的分类结果失去意义,例如在含有100个样本的数据集中,有98个样本是反例,只有两个样本是正例,那么分类器只需要简单地将预测结果全部输出为反例即可取得98%的正确率,然而这样的分类器没有任何价值,即使其准确率较高,但是它无法识别正例,而实际问题往往更关注正例。
解决样本不平衡问题一般有如下三种方式(假设原始数据反例多,正例少):

\[若 \frac{y}{1-y} > \frac{ m^{+} }{ m^{-} } 则预测为正 \]

但是我们的分类器是基于公式\(\frac{y}{1-y} > 1\)进行决策的,因此需对预测值进行调整。
只需令:

\[\frac{y^{‘} }{1-y^{‘} } = \frac{y}{1-y} * \frac{ m^{-} }{ m^{+}} \]

3 参考

《机器学习》——周志华

原文:https://www.cnblogs.com/foghorn/p/15185340.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!