機器學習中,多元分類是將實例分配到多個(多於兩個)類別中的其中一個(將實例分配到兩個類別中的其中一個被稱為二分類)。

顯然,分類算法可以分為二分類和多分類兩種,而多分類算法可以通過將其轉化為多個二分類來實現。

需要注意的是,多分類不應和多標籤分類相混淆:多標籤分類可以為每個實例預測多個標籤,即同一個實例可以同時被分配到多個類別。

一般策略

編輯

這部分討論將多分類問題轉化為多個二分類問題的策略。

One-vs.-rest

編輯

one-vs.-rest[1]:182, 338 (或one-vs.-all,OvA或OvR)策略需要為每一個類別分別建立一個唯一的二分類基分類器,屬於此類的所有樣本均為正例,其餘的全部為負例。這一策略需要基分類器去產生一個實值置信度以供決策,而不僅僅是預測出一個類標籤:只是預測出類標籤可能會導致歸類的不明確(可能有多個基分類器都預測為正例),以致於一個樣本會被預測屬於多個類別。[1]:182[注 1]

通過OvR方法使用二分類算法L建立多分類學習器,其偽代碼表示如下:

輸入:
  • 二分類訓練算法L
  • 樣本集合X
  • 標籤集合y 使yi ∈ {1, … K} 是樣本Xi的類標籤
輸出:
  • 一個二分類分類器序列fkk ∈ {1, …, K}
執行過程:
  • 對於{1, …, K}中的每個元素k
    • 構建一個新標籤向量z,其中yi = kzi = 1,否則 zi = 0(或-1)
    • L 應用於Xz 以獲得fk

當進行多分類時,需要將所有的二分類分類器應用於一個未知樣本xx的最終分類類別即為產生最大置信度的分類器所對應的標籤k

 

儘管這一策略很流行,但它是一個受到些許問題困擾的啟發式算法。首先,不同分類器之間置信度分佈可能不同,這些分類器各自輸出的置信度之間不一定具有可比性。其次,即使一個多分類訓練集的類別是均衡分佈的,其所對應的二分類所看到的類別分佈也是不均衡的,因為它們所看到的負例個數通常遠多於正例個數(即類別不平衡問題)。[1]:338

One-vs.-one

編輯

在one-vs.-one (OvO) 的轉化中,對於一個K類多分類問題,訓練 K (K − 1) / 2 個二分類分類器;每一個二分類分類器從初始多分類訓練集中收集其中兩個類別的所有樣本,並學習去區分這兩個類別。在預測時,會有一個投票:所有 K (K − 1) / 2 個二分類分類器被應用於一個未知樣本,並且那個得到最多「+1」預測的類別會成為最終的多分類預測結果。[1]:339

像OvR一樣, OvO也受些許問題困擾:在它輸入空間的一些區域會收到相同數目的投票。[1]:183

另見

編輯

註釋

編輯
  1. ^ 在多標籤分類中,OvR被認為是「二元相關性」(binary relevance),並且被預測到多個類別被認為是多標籤分類的自身特色,而非問題

參考資料

編輯
  1. ^ 1.0 1.1 1.2 1.3 1.4 Bishop, Christopher M. Pattern Recognition and Machine Learning. Springer. 2006.