多分类学习问题的解决方法

时间:2024-05-19 22:43:30

基本思路

利用二分类学习器解决多分类问题。考虑NC1,C2,...,CN,多分类学习的基本思路是“拆解法”,即将多分类问题拆分,然后为拆出的每个二分类任务训练一个分类器;在测试的时候,对每个分类器的预测结果进行集成,然后获得多分类结果。

具体方法

拆分策略:“一对一”(OvO),“一对其余”(OvR),“多对多”(MvM)

对给定的数据集D=(x1,y1),(x2,y2),...,(xm,ym),yiC1,C2,...,CN.

OvO:N,从而产生N(N1)/2个二分类任务,例如OvO将为区分类别CiCj训练一个分类器,把Ci类样例作为正例,Cj类样例作为反例。在测试阶段,将N(N1)/2个二分类结果通过投票产生最终结果:将预测最多的类别作为最终分类结果。

OvR将一个类作为正例、剩下的作为负例来训N个分类器。若有一个分类器被分为正例,则被标记正例的类即为最终分类结果,若有多个,则求取每个类别的置信度,选取置信度最大的类别作为最终结果。

多分类学习问题的解决方法

MvM:将若干个类作为正类,剩下的若干类为反类,通过“纠错输出码(ECOC)”来选取正反类。

process:
1.编码:对N个类别做M次划分,每次划分将一部分类别划分为正类,一部分划分为反类,从而形成一个二分类训练集;这样一共产生M个训练集,可训练出M个分类器。
2.解码:对M个分类器分别对测试样本进行预测,这些预测标记组成一个编码。将这个预测编码与每个类别的各自编码进行比较,返回其中最小的类别作为最终预测结果。
如下例:
多分类学习问题的解决方法

对于向量X=(x1,x2,x3,x4...,xn);Y=(y1,y2,y3,y4...,yn)

欧氏距离:
D1=(y1x1)2+(y2x2)2+(y3x3)2+...+(ynxn)2
海明距离:D2=ni=1II(xiyi)