纠错输出码ECOC

纠错输出码ECOC,即Error Correcting Output Codes,是一种最常用的MvM技术(many vs. many多对多),而非训练完成后再去纠错。
多分类学习最经典拆分策略:一对一OvO、一对其余OvR、多对多MvM。

如果纠错码之间最小海明距离为 n n n,则可以至少纠 ⌊ d − 1 2 ⌋ \lfloor \frac{d-1}2\rfloor 2d1位的错。如果我们只犯了 ⌊ d − 1 2 ⌋ \lfloor \frac{d-1}2\rfloor 2d1个错误,海明距离最近的编码还是正确的编码。

一个好的ECOC编码应该满足2个特征:

  • 行分离性(Row separation)。各行应该在海明距离上彼此良好地分开。
  • 列分离性(Column separation)。各列要学习的函数都应该不相关,这个性质可以通过保证各列和各列补集之间的海明距离很大来达到。

显然,ECOC的纠错能力直接与行分离性相关。但是,保证列分离性的目的没那么明显。如果列 i i i和列 j j j相似或者完全一样,那么一个deterministic learning algorithm比如说C4.5应用于学习 f i f_i fi f j f_j fj,就会产生相似的错误。ECOC仅仅在不同的地方独立产生错误时生效。

Exhausive Codes(EC)

3 ≤ k ≤ 7 3\leq k\leq 7 3k7,建立一个长度为 2 k − 1 − 1 2^{k-1}-1 2k11的编码。第一行全部是1;第二行前 2 k − 2 2^{k-2} 2k2个数是0,后 2 k − 2 − 1 2^{k-2}-1 2k21个数是1;第三行依次是 2 k − 3 2^{k-3} 2k3个数是0, 2 k − 3 2^{k-3} 2k3个1, 2 k − 3 2^{k-3} 2k3个0, 2 k − 3 − 1 2^{k-3}-1 2k31个1……依此类推。
机器学习导论PS2

Colunm Selection from Exhausive Codes(CSEC)

8 ≤ k ≤ 11 8\leq k \leq 11 8k11

Randomized Hill Climbing & BCH Codes

k > 12 k >12 k>12

参考资料:
Dietterich, T. G. and G. Bakiri. (1995). “Solving Multiclass Learning Problems via Error-Correcting Output Codes
A New Method for Solving Hard Satisfiability Problems(这大概是上文的简化版)

PS2

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值