机器学习笔记(IX)线性模型(V)多分类学习

来源:互联网 发布:手机首选网络怎么设置 编辑:程序博客网 时间:2024/06/11 11:04

拆解法

多分类问题的一般方法,是将多分类任务拆分为多个二分类任务求解,这里设有N个类别:C1,C2,,CN

具体做法

1:将多分类问题拆解为若干个二分类问题
2:为每个二分类问题训练一个分类器
3:得出每个二分类问题的预测结果
4:对这些二分类问题的结果进行集成最后得到多分类结果

拆分策略

给定数据集:

D={(x1,y1),(x2,y2),,(xm,ym)},yi{C1,C2,,CN}

拆分方法如下:

OvO

OvO(One vs ˙One)
“一对一”
N个类别两两配对,从而产生了N(N1)2个二分类问题

图解

这里写图片描述

OvR

OvR(One vs ˙Rest)
每次将一个类的样例作为正例,其他类的样例作为反例来训练N个分类器,在测试时仅有一个分类器预测为正类,则对应的类别标记就作为最终分类结果。
这里写图片描述

OvOOvR的比较

分类器个数:
OvO需要训练N(N1)2个分类器
OvR只需要训练N个分类器,
分类器的样例:
OvO每个分类器使用两个样例
OvR每个分类器使用所有样例
时间开销:
在类别比较少的情况下:
OvO的训练器比较多,所以存储开销和测试时间开销通常都比OvR的大。
在类别比较多的情况下:
OvO的训练器的样例比较少,所以训练时间开销通常都比OvR的少。

MvM

MvM(Many vs ˙Many)

做法

每次将若干个类作为正类,其他若干个类作为反类。

纠错输出码ECOC

ECOC=(Error Correcting Output Codes)
编码:
N个类别做M次划分,每次划分将一部分类别划分为正类,一部分划分为反类,从而形成一个二分类训练集,这样一共产生M个训练集,可以训练出M个分类器。
解码:
M个分类器分别对测试样本进行预测,这些预测标记组成一个解码,将这个预测解码与每个类别各自的编码进行比较,返回其中距离最小的类别作为最终结果。

编码矩阵

“+1”和“-1”分别表示学习器fi将该类别样本作为正反例,“0”表示fi不适用该类样本。

主要形式:

={==+11

这里写图片描述
====+110

这里写图片描述

ECOC码的性质

一般来说:在同一个学习任务中
码长度,纠错能力,训练分类器,计算存储开销
对同等长度的编码,任意两个类别之间的编码距离越远,则纠错能力越强。

原创粉丝点击