多標籤分類(multilabel classification ) 這幾天看了幾篇相關的文章, 寫篇文章總結一下,就像個小綜述一樣, 文章會很亂    1、multilabel classifica

 這幾天看了幾篇相關的文章, 寫篇文章總結一下,就像個小綜述一樣, 文章會很亂

   1、multilabel classification的用途

         多標籤分類問題很常見, 比如一部電影可以同時被分爲動作片和犯罪片, 一則新聞可以同時屬於政治和法律,還有生物學中的基因功能預測問題, 場景識別問題,疾病診斷等。

  2. 單標籤分類

         在傳統的單標籤分類中,訓練集中的每一個樣本只有一個相關的標籤 l ,這個標籤來自於一個不重合的標籤集合L,|L| > 1.當|L|=2 時,這就是一個二分類問題,或文本和網頁數據的過濾(filtering)問題。當|L| > 2 時是多分類問題。

  3、多標籤分類問題的定義

        簡單的說就是同一個實例,可以有多個標籤, 或者被分爲多個類。和多分類的區別是, 多分類中每個實例只有一個標籤。下面是幾個形式化的定義。

   

  4、與多標籤分類相關/相似的問題

        一個同屬於監督學習並和多標籤分類很相關的問題就是排序問題(ranking)。排序任務是對一個標籤集排序,使得排在前面的標籤與相應實例更相關。

      在特定分類問題中,標籤屬於一個層次結構(hierarchical structure)。當數據集標籤屬於一個層次結構的時候,我們這個任務爲層次分類,如果一個樣本與層次結構的多個節點相關, 那麼這個任務就被稱爲層次多標籤分類。

     多實例學習(multiple-instance learning)是監督學習的一個變種,用的比較少 ,就不說了。

  5. 多標籤分類的方法

       方法基本上分爲兩種,一種是將問題轉化爲傳統的分類問題,二是調整現有的算法來適應多標籤的分類

       常用的轉化方法有好幾種,比如對每個實例確定或隨機的分配一個標籤,或只保留只有一個標籤的訓練樣本,然後用傳統的多分類方法去訓練。這種方法會導致訓練樣本的損失,所以不推薦使用。還可以將訓練樣本按每個標籤構造一個訓練集,每個樣本屬於或不屬於這個標籤,對每個標籤單獨訓練一個分類器,然後將多個分類器的結果合成。還有將每個多標籤單獨看做一個新標籤,在一個更多的標籤集上做多分類。當多標籤樣本比較少時,這個方法就比較受限。還有對每個有多個標籤的樣本,複製該樣本,每個樣本具有不同的標籤,加入訓練集後使用覆蓋(coverage based)分類法。

     調整的算法也比較多,比如通過調整boost kNN  SVM等實現多分類,這些調整通常也會用到上面的轉換。其中調整kNN實現的多標籤分類可以加入先驗概率,並能對輸出標籤排序。基於SVM的算法中,有人在訓練集中加入了|L|個二分類的訓練結果,然後再進行一次分類,這個方法考慮到了不同標籤之間的依賴,也是應用棧(Stacking 多個分類器的疊加)的一個特殊情況。還有人利用了相關規則挖掘的方法。

  6. 評價標準

       令D表示多標籤評價數據集,有|D|個多標籤樣本。令H爲一個多標籤分類器,令爲有H基於的預測結果集。

     下面是幾個評價標準:

         

           

   7、 一點感悟

         多標籤學習,還有層次結構學習等,多個標籤之間一般不是獨立(independent)的,所以好的算法要利用標籤之間的依賴

         算法訓練的時候要麼降低cost function 要麼學習貝葉斯概率,兩種方法本質一樣,但表現形式不一樣

  8.  其它

       F-measure能比較好的平衡分類器對不同類別實例不同時在不同類上的表現,因此更適合於不平衡的數據。對一個m維二元標籤向量 ,對給定的預測,F-measure定義爲:

其中由定義,0/0=1

F-measure對應於精度和召回的調和平均。


 

發佈了104 篇原創文章 · 獲贊 380 · 訪問量 75萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章