机器学习中,多元分类是将实例分配到多个(多于两个)类别中的其中一个(将实例分配到两个类别中的其中一个被称为二分类)。

显然,分类算法可以分为二分类和多分类两种,而多分类算法可以通过将其转化为多个二分类来实现。

需要注意的是,多分类不应和多标签分类相混淆:多标签分类可以为每个实例预测多个标签,即同一个实例可以同时被分配到多个类别。

一般策略

编辑

这部分讨论将多分类问题转化为多个二分类问题的策略。

One-vs.-rest

编辑

one-vs.-rest[1]:182, 338 (或one-vs.-all,OvA或OvR)策略需要为每一个类别分别建立一个唯一的二分类基分类器,属于此类的所有样本均为正例,其余的全部为负例。这一策略需要基分类器去产生一个实值置信度以供决策,而不仅仅是预测出一个类标签:只是预测出类标签可能会导致归类的不明确(可能有多个基分类器都预测为正例),以致于一个样本会被预测属于多个类别。[1]:182[注 1]

通过OvR方法使用二分类算法L建立多分类学习器,其伪代码表示如下:

输入:
  • 二分类训练算法L
  • 样本集合X
  • 标签集合y 使yi ∈ {1, … K} 是样本Xi的类标签
输出:
  • 一个二分类分类器序列fkk ∈ {1, …, K}
执行过程:
  • 对于{1, …, K}中的每个元素k
    • 构建一个新标签向量z,其中yi = kzi = 1,否则 zi = 0(或-1)
    • L 应用于Xz 以获得fk

当进行多分类时,需要将所有的二分类分类器应用于一个未知样本xx的最终分类类别即为产生最大置信度的分类器所对应的标签k

 

尽管这一策略很流行,但它是一个受到些许问题困扰的启发式算法。首先,不同分类器之间置信度分布可能不同,这些分类器各自输出的置信度之间不一定具有可比性。其次,即使一个多分类训练集的类别是均衡分布的,其所对应的二分类所看到的类别分布也是不均衡的,因为它们所看到的负例个数通常远多于正例个数(即类别不平衡问题)。[1]:338

One-vs.-one

编辑

在one-vs.-one (OvO) 的转化中,对于一个K类多分类问题,训练 K (K − 1) / 2 个二分类分类器;每一个二分类分类器从初始多分类训练集中收集其中两个类别的所有样本,并学习去区分这两个类别。在预测时,会有一个投票:所有 K (K − 1) / 2 个二分类分类器被应用于一个未知样本,并且那个得到最多“+1”预测的类别会成为最终的多分类预测结果。[1]:339

像OvR一样, OvO也受些许问题困扰:在它输入空间的一些区域会收到相同数目的投票。[1]:183

另见

编辑

注释

编辑
  1. ^ 在多标签分类中,OvR被认为是“二元相关性”(binary relevance),并且被预测到多个类别被认为是多标签分类的自身特色,而非问题

参考资料

编辑
  1. ^ 1.0 1.1 1.2 1.3 1.4 Bishop, Christopher M. Pattern Recognition and Machine Learning. Springer. 2006.