MultiClass VS MultiLabels

1.多類別分類和多標籤分類的區別

有多個類別,但每個實例只分配一個,因此這些問題被稱爲多類分類(MultiClass)問題

        例如電影限制級別,一部電影只會被劃分成一種限制級別

有多個類別,但每個實例可以分配到多個不同類別(1或不定數量),因此這些問題被稱爲多標籤分類(MultiLabels)問題

        例如電影的主題,一部電影可以被同時劃分爲喜劇片和動作片

 

2.解決多標籤分類問題的技術

2.1問題轉換

2.1.1二元關聯

這是最簡單的技術,它基本上把每個標籤當作單獨的一個類分類問題。例如,讓我們考慮如下所示的一個案例。我們有這樣的數據集,X是獨立的特徵,Y是目標變量。

解決多標籤分類問題(包括案例研究)

在二元關聯中,這個問題被分解成4個不同的類分類問題,如下圖所示。

解決多標籤分類問題(包括案例研究)

 它是最簡單和有效的方法,但是這種方法的惟一缺點是它不考慮標籤的相關性,因爲它單獨處理每個目標變量。

 

 2.1.2分類器鏈

 

在這種情況下,第一個分類器只在輸入數據上進行訓練,然後每個分類器都在輸入空間和鏈上的所有之前的分類器上進行訓練。
讓我們試着通過一個例子來理解這個問題。在下面給出的數據集裏,我們將X作爲輸入空間,而Y作爲標籤。

解決多標籤分類問題(包括案例研究)

在分類器鏈中,這個問題將被轉換成4個不同的標籤問題,就像下面所示。黃色部分是輸入空間,白色部分代表目標變量。

解決多標籤分類問題(包括案例研究)

這與二元關聯非常相似,唯一的區別在於它是爲了保持標籤相關性而形成的。那麼,讓我們嘗試使用multi-learn庫來實現它。

 

2.1.3標籤Powerset

在這方面,我們將問題轉化爲一個多類問題,一個多類分類器在訓練數據中發現的所有唯一的標籤組合上被訓練。讓我們通過一個例子來理解它。

解決多標籤分類問題(包括案例研究)

在這一點上,我們發現x1和x4有相同的標籤。同樣的,x3和x6有相同的標籤。因此,標籤powerset將這個問題轉換爲一個單一的多類問題,如下所示。

解決多標籤分類問題(包括案例研究)

唯一的缺點是隨着訓練數據的增加,類的數量也會增加。因此,增加了模型的複雜性,並降低了精確度。

 

2.2改編算法

改編算法來直接執行多標籤分類,而不是將問題轉化爲不同的問題子集。例如,kNN的多標籤版本是由MLkNN表示的。

在一些算法中,例如隨機森林(Random Forest)和嶺迴歸(Ridge regression),Sci-kit learn提供了多標籤分類的內置支持。因此,你可以直接調用它們並預測輸出。

2.3集成方法

集成總是能產生更好的效果。Scikit-Multilearn庫提供不同的組合分類功能,你可以使用它來獲得更好的結果。

對於直接實現,你可以查看:http://scikit.ml/api/classify.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章