多分類學習及糾錯輸出碼
拆分策略
經典的拆分策略一般分為三種:
- 一對一
- 一對多
- 多對多
``OvO指的是
One vs. One,相應的由
One vs. Remain的
OvR,可以看出對於n個類別的多分類學習,
OvO可以在$\frac{n(n-1)}{2}$個分類器中得到輸出,而
OvR只需訓練
n`個分類器。
ECOC
MvM
中有一種透過編碼的方式進行拆分的技術,稱為糾錯輸出碼(ECOC)。觀察以下編碼矩陣:
類別 | 分類器$f_1$ | 分類器$f_2$ | 分類器$f_3$ | 海明距離 | 歐氏距離 |
---|---|---|---|---|---|
$C_1$ | +1 | -1 | -1 | 1 | 2 |
$C_2$ | +1 | +1 | -1 | 2 | $2\sqrt{2}$ |
$C_3$ | +1 | +1 | +1 | 3 | $2\sqrt{3}$ |
樣例 | -1 | -1 | -1 | \ | \ |
+1代表該類為正類,-1表示為反類,一般來說還可能存在停用類
根據海明距離和歐氏距離判斷最終樣例的輸出類別,越小表明分類效果越好。
從編碼的角度出發,可以看到ECOC本身具有一定的糾錯能力,具有對錯誤分類的容忍能力:
- 當$f_2$出現錯誤,最終得到的輸出類別仍是$C_1$,因為在劃分過程當中分類器對所有樣例判斷都出現錯誤
- 當編碼越長,對距離計算的影響越小
因此編碼越長,糾錯能力越強。
類別不平衡問題
類別不平衡問題指的是分類任務中不同類別的訓練樣例差別很大。這裡假設正例遠遠小於反例。
無偏取樣
定義分類器的劃分策略為
$$
當\frac{y}{1-y}>\frac{m+}{m-},預測為正例
$$
$m+$表示樣例中的正例數量,$m-$表示樣例中的反例數量。
再放縮
$$
\frac{y'}{1-y'} = \frac{y}{1-y} \times\frac{m-}{m+}
$$
再放縮:
- 透過“欠取樣”和“過取樣”對訓練集進行調整,“欠取樣”指去除一些反例使得正反例數量相當,“過取樣”指增加正例使得其相當。
- 使用原訓練集繼續訓練,在對例項分類時採用$\frac{y'}{1-y'} = \frac{y}{1-y} \times\frac{m-}{m+}$作為策略。
這裡的再放縮屬於代價敏感學習,$m-$和$m+$可以用$cost+$和$cost-$進行表示,$cost+$表示將正類誤判為負類的代價,$cost-$指的時將負類判斷為正類的代價。