One-Versus-All / One-Versus-the-Rest(ova/ovr): 一對多
Error Correcting Output codes(糾錯碼機制):多對多
Problem Transformation Methods
單標籤二分類算法
單標籤二分類這種問題是我們最常見的算法問題,主要是指label標籤的取值只有兩種,並且算法中只有一個需要預測的label標籤。直白來講就是每個實例的可能類別只有兩種(A or B)。此時的分類算法其實是在構建一個分類線將數據劃分爲兩個類別。常見的算法有:Logistic、SVM、KNN等。
Logistic算法
單標籤多分類算法
單標籤多分類問題其實是指待預測的label標籤只有一個,但是label標籤的取值可能有多種情況。直白來講就是每個實例的可能類別有K種。常見算法:Softmax、KNN等。
Softmax算法
在實際的工作中,如果是一個多分類的問題,我們可以將這個待求解的問題轉換爲二分類算法的延伸,即將多分類任務拆分爲若干個二分類任務求解,具體的策略如下:
- One-Versus-One(ovo):一對一
- One-Versus-All / One-Versus-the-Rest(ova/ovr): 一對多
- Error Correcting Output codes(糾錯碼機制):多對多
One-Versus-One(ovo):一對一
將K個類別中的兩兩類別數據進行組合,然後使用組合後的數據訓練出來一個模型,從而產生K(K-1)/2個分類器,將這些分類器的結果進行融合,並將分類器的預測結果使用多數投票的方式輸出最終的預測結果值。
One-Versus-All / One-Versus-the-Rest(ova/ovr): 一對多
在一對多模型訓練中,不是兩兩類別的組合,而是將每一個類別作爲正例,其它剩餘的樣例作爲反例分別來訓練K個模型。然後在預測的時候,如果在這K個模型中,只有一個模型輸出爲正例,那麼最終的預測結果就是屬於該分類器的這個類別。如果產生多個正例,那麼則可以選擇根據分類器的置信度作爲指標,來選擇置信度最大的分類器作爲最終結果,常見置信度:精確度、召回率。
ovo和ovr的區別
Error Correcting Output codes(糾錯碼機制):多對多
將模型構建應用分爲兩個階段:編碼階段和解碼階段。編碼階段中對K個類別中進行M次劃分,每次劃分將一部分數據分爲正類,一部分數據分爲反類,每次劃分都構建出來一個模型,模型的結果是在空間中對於每個類別都定義了一個點。解碼階段中使用訓練出來的模型對測試樣例進行預測,將預測樣本對應的點和類別之間的點求距離,選擇距離最近的類別作爲最終的預測類別。
多標籤多分類算法
Multi-Label Machine Learning(MLL算法)是指預測模型中存在多個y值,具體分爲兩類不同情況:
- 多個待預測的y值
- 在分類模型中,一個樣例可能存在多個不固定的類別
根據多標籤業務問題的複雜性,可以將問題分爲兩大類:
- 待預測值之間存在相互的依賴關係
- 待預測值之間是不存在依賴關係的
對於這類問題的解決方案可以分爲兩大類:
- 轉換策略(Problem Transformation Methods)
- 算法適應(Algorithm Adaptation)
Problem Transformation Methods
該方法又叫做策略轉換或者問題轉換,是一種將多標籤的分類問題轉換成爲單標籤模型構造的問題,然後將模型合併的一種方法,主要有以下幾種方式:
- Binary Relevance(first-order)
- Classifier Chains(high-order)
- Calibrated Label Ranking(second-order)
Binary Relevance
Binary Relevance的核心思想是將多標籤分類問題進行分解,將其轉換爲q個二元分類問題,其中每個二元分類器對應一個待預測的標籤。
Binary Relevance方式的優點如下:
- 實現方式簡單,容易理解
- 當y值之間不存在相關的依賴關係的時候,模型的效果不錯
Binary Relevance方式的缺點如下:
- 如果y之間存在相互的依賴關係,那麼最終構建的模型的泛化能力比較弱
- 需要構建q個二分類器,q爲待預測的y值數量,當q比較大的時候,需要構建的模型會比較多
Classifier Chains
Classifier Chains的核心思想是將多標籤分類問題進行分解,將其轉換成爲一個二元分類器鏈的形式,其中後鏈的二元分類器的構建是在前面分類器預測結果的基礎上的。在模型構建的時候,首先將標籤順序進行shuffle打亂排序操作,然後按照從頭到尾分別構建每個標籤對應的模型。
Classifier Chains方法的優點如下:
- 實現方式相對比較簡單,容易理解
- 考慮標籤之間的依賴關係,最終模型的泛化能力相對於Binary Relevance方式構建的模型效果要好
缺點如下:
- 很難找到一個比較適合的標籤依賴關係
Calibrated Label Ranking
Calibrated Label Ranking的核心思想是將多標籤分類問題進行分解,將其轉換爲標籤的排序問題,最終的標籤就是排序後最大的幾個標籤值。
Calibrated Label Ranking 方法的優點如下:
- 考慮了標籤兩兩組合的情況,最終的模型相對來講泛化能力比較好
Calibrated Label Ranking 方法的缺點如下:
- 只考慮兩兩標籤的組合,沒有考慮到標籤與標籤之間的所有依賴關係
Algorithm Adaptation
Algorithm Adaptation又叫做算法適應性策略,是一種將現有的單標籤的算法直接應用到多標籤上的一種方式,主要有以下幾種方式:
- ML-kNN
- ML-DT
ML-kNN
ML-kNN的思想:對於每一個實例來講,先獲取距離它最近的k個實例,然後使用這些實例的標籤集合,通過最大後驗概率(MAP)來判斷這個實例的預測標籤集合的值。
最大後驗概率(MAP):其實就是在最大似然估計(MLE)中加入了這個要估計量的先驗概率分佈。
ML-DT
ML-DT是使用決策樹處理多標籤內容,核心在於給予更細粒度的信息熵增益準則來構建這個決策樹模型。
多標籤多分類在Scikit-learn中的實現方式
在Scikit-learn中使用OneVsRestClassifier對多標籤進行分類操作,內部其實是將多標籤問題轉換爲多類別的區分問題。