糾錯輸出編碼法(Error-Correcting Output Codes,ECOC)不僅能夠將多類分類問題轉化為多個兩類問題,而且利用糾錯輸出碼本身具有糾錯能力的特性,可以提高監督學習算法的預測精度。
將多類問題兩類化的重要途徑是對輸出的類別進行編碼,即每個類別對應一個長度為n的二進制位串(稱為碼字),共形成m個碼字,這些碼字的同一位描述了一個二值函數。學習結束后獲得n個二分器,在分類階段,每個二分器對輸入樣本產生的輸出形成輸出向量,然后由決策規則判定輸入樣本的類別。
糾錯輸出編碼法:將機器學習問題看做數據通信問題,並采用糾錯輸出碼對各類別進行編碼,因此在分類過程中能夠糾正某些二分器的錯誤輸出,從而提高分類器的預測精度。
在編碼理論中,利用漢明距離可以確定分組碼的糾錯能力,我們也采用漢明距離確定輸出碼的糾錯能力。
糾錯輸出碼矩陣的行數等於監督分類問題的類別數m,列數等於碼長n,一個有用的糾錯輸出碼應該具有以下特性:
1.具有一定的糾錯能力。
2.碼矩陣中無全0列,無全1列。
3.碼矩陣中無相同列,無互補列。
常用的編碼方法:列舉編碼法、隨機爬山法、BCH編碼法、連續編碼法、搜索編碼法。