机器学习:线性模型-多分类任务拆分之纠错输出码ECOC浅析

多分类任务通常转化为多个二分类任务,再对预测结果进行集成得出最终分类结果。
拆分为二分类任务通常有3种:一对一(OvO),一对其余(OvR)和多对多(MvM)。

OvO:
将N个类别两两配对,共N(N-1)/2个分类任务,每个分类任务一个类别作为正例,另一个作为反例,学习得到 N(N-1)/2个分类器。新样本同时提交给所有分类器,得到 N(N-1)/2个分类结果,把预测最多的类别作为最终结果。见下图:
OvR:
每次将一个类作为正例,其余所有类作为反例,训练N个分类器。新样本提交给所有分类器,若仅有一个分类器预测为正例,则该类标记作为最终结果,如上图。若有多个分类器标记为正例,则考虑预测置信度。

注:类别很多时,OvO的训练时间开销通常比OvR小(OvR每个分类器都使用全部样本)

MvM:
每次将若干个类别作为正例,其他作为反例,最常用“纠错错误码 (ECOC)”,(ECOC编码对分类器错误有一定的容忍修正能力,即使某个分类器预测出错,也不一定会影响结果)
ECOC:
编码:将N个类别做M次划分,每次将一部分作为正例,其余作为反例,学习到M个分类器;
解码:新样本提交给M个分类器,得到M个结果,组成一个编码,将其和每个类别各自的编码进行比较,距离最小的类别作为最终结果。如下图:

图a中测试样例的编码和C3类的编码欧式距离最小,所以测试样本最终判定结果为C3类(采用欧式距离判别)

猜你喜欢

转载自blog.csdn.net/weixin_35732969/article/details/80509498