多分類學習及糾錯輸出碼

Sion258發表於2024-07-27

多分類學習及糾錯輸出碼

拆分策略

經典的拆分策略一般分為三種:

  • 一對一
  • 一對多
  • 多對多

``OvO指的是One vs. One,相應的由One vs. RemainOvR,可以看出對於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-$指的時將負類判斷為正類的代價。

相關文章