ECOC编码

多分类学习任务经常被划分为多个二分类学习任务,最后进行结果集成完成分类,一般有三种划分方法,“一对一”、“一对其余”、“多对多”(针对类别)。


ECOC(Error Correcting Output Codes,纠错输出码)作为输出表示,用于多分类学习任务。主要思想是,通过事先分别为 k 类类别定义一串编码序列(code word)。在分类的时候,只需比较待分类样本与各串编码的差异程度(distance measure)。如下图,在Dietterich一文中,一般对于ECOC的大部分应用,其Code Word的每一位都有实际的含义,假设有一预分类样本为110001,则由Hamming distance距离可得,Class 4的距离最小,因此将其划分为Class 4。ECOC还有一个显著的优点就是能够纠错,若最小Hamming distance为d,则ECOC最少能纠正d12位的错误(即仍然将其划分为实际正确的类)。

example

这里就有两个问题,各类的编码序列如何获得,差异程度如何定义。

ECOC编码设计

如先前的例子所示,我们需要构建一个矩阵,行表示一类样本的编码,列则表示一类特征。因此好的ECOC编码应该满足一下两个特征
1.Row separation.对于Hamming Distance,每个编码序列应该与其它编码良好可分。
2.Column separation.每一位编码应该与其余位置的编码不相关。这个可以通过该列与其余列以及其余列的补集的Hamming Distance达到很大来保证。
ECOC编码的纠错能力与Row separation直接相关,每一位编码应该与其余位置的编码不相关,这样ECOC才能工作良好,同时同一时刻多个不同位置发生错误的概率就会很低。如果出现这一情况,则ECOC不再能纠正它们。
同时如果两列编码互补,则其Hamming Distance达到最大,但这时这两列也是高度相关的,这是因为类似C4.5和后向传播算法会将一个类别编码及其互补的编码作为对称的一类,因此需要避免完全相同,但是也不能相互互补。
Dietterich一文中介绍了四种构造ECOC编码的方法。

分类数量方法
3k7 Exhausive Codes(EC)
8k11 Column Selection From Exhausive Codes(CSEC)
k>11 Randomized Hill Climbing
k>11 BCH Codes

Exhausive Codes(EC)

3k7 时,我们构建一个长度为 (2k11) 的编码序列。并且如下构建,第一行全部为1,第二行前 (2k2) 个0,后面剩余的 (2k21) 为1。第三行依次包含包含 (2k3) 个0、 (2k3) 个1、 (2k3) 个0、 (2k31) 个1。在第 i (2ki)个0、1交替出现。下图为 k=5 的示例。

这里写图片描述

Column Selection From Exhausive Codes(CSEC)

8k11 时,我们依然构建Exhausive Codes,然后在它的列中选择好的子集。使用改进的GSAT算法(A New Method for Solving Hard Satisfiability Problems)。

Randomized Hill Climbing

k>11 时,使用随机搜索算法来得到期望长度为 L k个随机编码序列。

BCH Codes

k>11 时,我们也可以使用BCH算法来设计编码(On a class of error correcting binary group codes & Codes correcteurs d’erreurs)。


参考资料:1.Thomas G.Dietterich,Ghulum Bakiri,1995,Solving Multiclass Learning Problems via Error-Correcting Output Codes
2.周志华,P63-66,《机器学习》

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行许可。

  • 6
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值