機器學習:SVM做多分類問題


   

引言

   

SVM做二分類問題很簡單明了,但是如何用二分類構建多分類問題,自己查找了部分資料,發現普遍分為兩種,一種是直接法,直接求解多目標函數優化問題,但這種方法計算量很大,不實用,另外一種是間接法,通過多個二分類來實現多分類,常見的有一對多和一對一兩種

   

最后針對一對一要構建n平方個二分類器,如果n過大,那么分類器個數過多的情況,提出一種有向無環圖的方法,這種方法只需要構建n個分類器,但存在誤差累計的問題

   

直接法求多目標優化問題(不實用)

   

一次性考慮所有樣本,並求解一個多目標函數的優化問題,一串心得到多個分類的面

   

   

每個區域對應一個類別

   

但這種一次性求解的方法計算量太大,大到無法實用的地步

   

一對多

   

將類別1看作正類,其余2,3,4,5看作負類(一對多),這樣拿一個樣本來,可以告訴你是不是屬於類別1的,如果不屬於,再在2,3,4,5中繼續尋找

   

存在兩個問題:

   

一個是一個樣本可能同時屬於幾個類

   

那么看一下這個樣本到各個超平面的距離,哪個遠判給哪個

   

另一個是一個樣本可能不屬於任何一個

   

這樣這個樣本屬於第6類,這個類的數目遠大於5類之和,所以會造成數據偏斜問題

   

一對一

   

將類別1看作正類,不降2,3,4,5都看作負類,而是從1-5中任意選取2種類別來分類,得到5*4/2=10中分類器,每一個分類器只告訴你是第一類還是第二類,或者是第一類還是第三類,統計所有分類器的票數,根據票數得到分類結果

   

這種問題不會有樣本不屬於任何一類的情形出現

   

但如果類別數比較大,比如1000,那么分類器的數目要上升到類別數的平方級別

   

復雜度較大

   

有向無環圖

   

不會走回頭路 >>> 減少分類器的數目

   

   

先問是第一類還是第五類

   

如果是第五類,再問是第二類還是第五類

   

如果是第五類,然后再問是第三類還是第五類

   

這樣的話得到最后的結果不管怎樣都只調用N個分類器,N是類別的數目,比起上面要調用N平方個分類器要減少很多

   

但問題在於存在誤差累計,一旦犯錯,后面都錯的情況


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM