许多机器学习算法,如支持向量机、逻辑回归等,是针对二元分类设计的,因此需要某种方法来将二分类器进行转换,从而应用于多分类问题。下面两个是常用的方法:
- One vs Ove(OVO)
- One vs Rest(OVR) 或者 One vs All (OVA)
1. One-vs-One
OVO 创建多个二分类器来解决多分类问题。例如,如果有 \(N\) 个类别,那么就会有 \(N \times (N-1) \div 2\) 个分类器,并通过投票或者其他决策方法来确定最终的分类结果。
假设有三个类别:狗、猫、和鸟。我们需要创建 𝑁×(𝑁−1)÷2 = 3 二分类器:
- 狗 vs 猫
- 狗 vs 鸟
- 猫 vs 鸟
当需要对新样本进行分类时候,将样本输入到每个二分类器中,得到:
- 对于狗 vs 猫的分类器,假设它给出的概率是:
- 狗:0.6
- 猫:0.4
- 对于狗 vs 鸟的分类器,假设它给出的概率是:
- 狗:0.8
- 鸟:0.2
- 对于猫 vs 鸟的分类器,假设它给出的概率是:
- 猫:0.3
- 鸟:0.7
接下来,我们将每个类别的概率值相加,选择最高概率总和的类别作为最终的预测标签。在这个例子中,我们的概率总和如下:
- 狗:0.6 + 0.8 = 1.4
- 猫:0.4 + 0.3 = 0.7
- 鸟:0.2 + 0.7 = 0.9
最终新样本预测为狗类别。
2. One-vs-Rest
OVR 也是通过创建 \(N\) 个二分类器,每个分类器用于区分一个类别与其他所有类别的情况。最后,通过投票或其他决策方法确定最终的分类结果。假设已经训练好了 3 个二分类器为:
- 狗 vs 其他类别
- 猫 vs 其他类别
- 鸟 vs 其他类别
现在,假设有一个新样本需要进行分类。我们将新样本输入到每个分类器中,并获取每个分类器对于该样本属于其指定类别的概率。假设结果如下:
- 对于狗 vs 其他类别的分类器,它给出的概率是:
- 狗:0.6
- 非狗:0.4
- 对于猫 vs 其他类别的分类器,它给出的概率是:
- 猫:0.7
- 非猫:0.3
- 对于鸟 vs 其他类别的分类器,它给出的概率是:
- 鸟:0.5
- 非鸟:0.5
这些数据表示每个分类器对于新样本属于其指定类别的概率,我们选择最高概率的类别作为最终的预测结果。在这个例子中,猫类别的概率最高(0.7),所以我们可以将这个新样本分类为猫。