* 誤り訂正出力符号 (error correcting output code; ECOC) [#f641a425]

//ここには %項目の説明を書いてください.よろしければ署名しておいてください.

誤り訂正出力符号は,多クラスの分類問題を,2値分類器で解くための手法.

一対他分類器では,\(k-1\)個の,一対一分類器では,\(k(k-1)/2\)個の分類器を学習する.多数の分類器を使うと頑健性は向上するが,多くの計算量が必要になる.
\(k-1\)と\(k(k-1)/2\)個の間の個数の分類器で,頑健性と計算量のバランスをとるための手法が誤り訂正出力符号を使った多クラス分類.

|クラス\分類器|1|2|3|4|5|6|h
|A     |1|1|1|1|1|1|
|B     |0|0|0|1|1|1|
|C     |0|1|1|1|0|0|
|D     |1|0|1|0|1|0|

A〜Dの4クラスの場合に,6個の分類器を使う例.
この表は,分類器 1 は,クラスAとDでは1を,クラスBとCでは0を出力することを示す.
ここで,各クラスの行を,そのクラスの符号とする.

頑健性を向上させるため,行ベクトルの符号は,Hamming距離で測って互いに離れるようにする.符号長を \(L\) とすると,Hamming距離は \(k\) から \(L-k\) の間にできる.この例ではHamming距離は3か4になっている.同時に,同じ列があってはならず,列の0/1を反転させたものも他の列にあってはならない.という訳で \(k\) が大きいと設計は大変.

分類は,1〜6の分類器の出力の符号と,各クラスの符号を比べHamming距離で一番近いクラスに分類する.
例えば,分類器1〜6が 100111 という出力をした場合,クラス A〜D の符号へのHamming距離はそれぞれ,2,1,5,3となり,一番近いクラスBに分類にする.

> -- しましま

** 関連項目 [#r8e0c4f3]

//英語や同義語のあとに,#brで区切って関連する項目をリストしてください.
-[[error correcting output code]]
-[[ECOC]]
#br
-[[識別]]
-[[多クラス]]
-[[アンサンブル学習]]
-[[頑健性]]
-[[Hamming距離]]
#br
-[[検索:誤り訂正出力符号 ECOC]]

** リンク集 [#q261b20a]

//関連するWWW資源があればリンクしてください.
-[[Scholarpedia:Error-Correcting_Output_Codes_for_Multiclass_Learning]]

*** Freeware [#t1c83f50]

-[[Error Correcting Output Codes Library>http://mloss.org/software/view/238/]] (matlab, octave)

** 関連文献 [#v48c07ee]

//この%項目%に関連する書籍や論文を紹介してください.

-基本文献~
[[T.G.Dietterich and G.Bakiri "Solving multiclass learning problems via error-correcting output codes" JAIR, vol.2, pp.263-286 (1995)>http://www.jair.org/papers/paper105.html]]~
[[GoogleScholarAll:Solving multiclass learning problems via error-correcting output codes]]
- [[Book/データマイニングの基礎]] 3.1.6節
- [[Book/Data Mining - Practical Machine Learning Tools and Techniques]] 7.5節 Error-correcting output codes
-[[Book/パターン認識(Rで学ぶデータサイエンス5)]] 15章

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS