多分類問題學習器拆分策略
多分類問題學習器拆分策略
對於 個類別 ,多分類學習的基本思路是拆解法,即將多分類任務拆分成若干個二分類任務求解,拆分策略如下所示:
一對一(One vs. One, OvO)
將 個類別兩兩配對,產生 個二分類任務,每個任務使用一個二分類學習器進行學習;
多個二分類學習器預測得到結果中,最多的類別作為最終的分類結果。
一對其餘(One vs. Rest, OvR)
每次將一個類別作為正例,其餘其他類別樣例均作為反例,產生 個二分類任務;
若有多個二分類器預測為正類,則通常考慮各分類器的預測置信度,選擇置信度最大的類別作為分類結果。
多對多(Many vs. Many, MvM)
每次將若干個類作為正類,若干個其他類作為反類,MvM的正反類構造必須有特殊的設計,不能隨意選取;
最常用的MvM技術是:糾錯輸出碼(Error Correcting Output Codes, ECOC);
ECOC工作過程主要分為2步:
- 編碼:對 個類別做M次劃分,每次劃分將一部分類別劃為正類,一部分劃為反類,從而形成一個二分類訓練集;這樣一共產生 個訓練集,可以訓練出 個分類器;
- 解碼: 個分類器分別對測試樣本進行預測,這些預測結果標記組成一個編碼;將這些預測結果編碼與每個類別各自的編碼進行比較,返回其中距離最小的類別作為最終預測結果;
上圖是ECOC編碼示意圖,其中, 表示第 個類別, 表示第 個學習器,“+1”和“-1”分別表示學習器 將該類樣本作為正、反例,“0”(三元碼中, 行 列, 行 列)表示學習器 不使用該類樣本,測試示例即各學習器預測結果編碼。
海明距離:在資訊編碼中,兩個合法程式碼對應位上編碼不同的位數稱為碼距;
歐式距離:是一個通常採用的距離定義,指在m維空間中兩個點之間的真實距離;
二元ECOC碼:
測試示例:-1 -1 +1 -1 +1
編碼: -1 +1 -1 +1 +1 海明距離 = 3 歐式距離 =
編碼: +1 -1 -1 +1 -1 海明距離 = 4 歐式距離 =
編碼: -1 +1 +1 -1 +1 海明距離 = 1 歐式距離 =
編碼: -1 -1 +1 +1 -1 海明距離 = 2 歐式距離 =
對應的海明距離和歐式距離均最小,因此最終結果為 類。
三元ECOC碼:
測試示例:-1 +1 +1 -1 +1 -1 +1
編碼: -1 -1 +1 +1 -1 +1 +1 海明距離 = 4 歐式距離 =
編碼: -1 0 0 0 +1 -1 0 海明距離 = 2 歐式距離 =
編碼: +1 +1 -1 -1 -1 +1 -1 海明距離 = 5 歐式距離 =