小嘿嘿之多类分类算法

多类分类算法

  • 一对一拆分(OvO)
  • 一对多拆分(OvR)
  • 多对多拆分(MvM)

多分类问题的基本思想就是,将多分类任务拆解为若干个二分类任务求解。

一对一拆分(OvO)

  • 基本思想
    将N个类别两两匹配,每次使用2个类别的数据训练分类器,从而产生N(N−1)/2个二分类器。使用时,将样本提交给所有的分类器,得到了N(N−1)/2个结果,最终属于哪个类别通过投票产生。
  • 分类器个数:N(N−1)/2个
  • 特点
    分类器较多,且每个分类器在训练时只使用了2个类别的样本数据。

一对多拆分(OvR)

  • 基本思想
    每次将一个类作为样例的正例,其他所有均作为反例,得到N个分类器。也就是说,每个分类器能识别一个固定类别。使用时,若有一个分类器为正类,则就为该类别;若有多个分类器为正类,则选择置信度最高的分类器识别的类别。
  • 分类器个数:N个
  • 特点
    相比OvO分类器较少,且每个分类器在训练时使用了所有样本数据。

小嘿嘿之多类分类算法_第1张图片

多对多拆分(MvM)

  • 基本思想
    每次将若干个类作为正例、若干个类作为反例。显然OvO、OvR都是其特例。MvM的正、反类设计必须有特殊的设计,常用的一种技术:”纠错输出码”,简称ECOC。
    ECOC是将编码的思想引入类别的划分,并可能在解码过程中具有容错性。
  • ECOC工作过程主要分为两步
    1.对N个类做M次划分,每次划分将一部分作为正类,一部分划分反类,从而形成一个二分类训练集。一共产生M个训练集,训练出M个分类器。
    2.M个分类器分别对测试样本进行预测,这些预测标记组成一个编码。将这个预测编码与每个类各自的编码进行比较,返回其中距离最小的类别作为最终结果。
    白话地说:
    编码: 对N个类别做M次划分,每次划分将一部分类别划为正类,其余为负类。
    解码: M个分类器预测标记组成一个编码,将此预测编码与各自类别的编码进行比较,返回其中distance最小的类。
    小嘿嘿之多类分类算法_第2张图片
  • 分类器个数:M个
  • 特点
    对同一个学习任务来说,ECOC编码越长,纠错能力越强。然而编码越长所需要的训练的分类器越多,计算存储开销都会增大;另一方面对于有限类别码长超过一定范围就没有意义了。对于同等长度的编码,理论上来说,任务两个类别之间的编码距离越远,则纠错能力越强。

你可能感兴趣的:(小嘿嘿之多类分类算法)