1. 程式人生 > >機器學習演算法之SVM的多分類

機器學習演算法之SVM的多分類

一、SVM可以直接進行多分類嗎
這裡寫圖片描述
SVM本身是對付二分類問題的,所以在處理多分類的時候需要進行必要的改造。

同樣是二分類的情況,logistic迴歸可以直接拓展為softmax多分類。但是SVM如果直接在目標函式上進行修改的話,就是將多個分類面的引數求解合併到一個最優化問題上,顯然難度太大,目前也沒有任何實際操作的方法。

二、SVM多分類間接實現

1、1-V-rest:將某一類歸為正類,其餘全部是負類。

該方法的最大缺陷是資料集的不平衡,因為某一類的例項往往只佔一小部分。當然解決不平衡的問題可以進行降取樣或者上取樣,但是上取樣中資料集過多重合,易導致過擬合,而降取樣使得資料利用率不足,不能學習整個模型的特性。

2、1-V-1:k類的資料集中,單獨為每兩類的樣本設計SVM,進行分類。最終必須設計k(k-1)/2個分類器,最終用投票的方式進行選擇。這也是libsvm採用的方法,但是當類別有1000個的時候、、、

3、根據前兩種方法的比較,可以看出就效能而言寧願多做點事情,也要保證避免過擬合或者預測能力不足的情況,所以大部分情況下第二種方法更優。但是第二種成本太大,所以有了第三種方法,類似於SVM的二叉樹組合,在論文《基於SVM的二叉樹多類分類演算法及其在故障診斷中的應用》中,

這裡寫圖片描述

如果類別為k個,那麼最後只需要k-1個分類器。

該模型的最大缺點就是如果某一層中的分類出錯了,那麼後面的分類器只能將錯就錯。所以選擇差別大的兩類在前,差別小的類在後。