多分类学习

1.基本思想:
考虑到N个类别C1,C2,…,Cn,
多分类学习的基本思路:拆解法,即将多分类任务拆解为若干个二分类任务求解。
具体讲,先对问题进行拆分,然后为拆出的每个二分类任务训练一个分类器。在测试时,对这些分类器的预测结果进行集成以获得最终的多分类结果。

2.拆分策略
给定数据集D={(x1,y1),(x2,y2),…,(xm,ym)},yi属于{C1,C2,…,CN}:
1)一对一(One vs One,OvO):
OvO将这N个类别两两配对,产生N(N-1)/2个二分类任务。

例如:OvO将类别Ci和Cj训练为一个分类器,该分类器把D中的Ci类样例作为正例,Cj类样例作为反例。

在测试阶段,新样本将同时提交给所有分类器,得到N(N-1)/2个分类结果,通过投票产生最终结果,即把被预测得最多的类别作为最终分类结果。

2)一对其余(One vs Rest,OvR):
OvR每次将一个类的样例作为正例、所有其他类的样例作为反例来训练N个分类器。

在测试时,若只有一个分类器预测为正类,则对应的类别标记作为最终分类结果。若有多个分类器预测为正类,通常考虑各分类器的置信度,置信度大的类别作为分类结果。

多分类学习_第1张图片

容易看出,OvR只需训练N个分类器,而OvO需训练N(N-1)/2个分类器。因此,OvO的 存储开销测试时间开销 通常比OvR更大。

但在训练时,OvR的每个分类器均使用全部训练样例,而OvO的每个分类器仅用两个类的样例。因此,在类别很多时,OvO的 训练时间开销 通常比OvR更小。

3)多对多(Many v Many,MvM):
每次将若干个类作为正类,若干个其他类作为反类。

一个样本属于且只属于多个类中的一个,一个样本只能属于一个类,不同类之间是互斥的。

你可能感兴趣的:(机器学习-算法)