將SVM用於多類分類

2022-01-23 19:05:22 字數 1206 閱讀 1102

**:

svm是一種典型的二類分類器,是採用最大間隔化策略來確定特徵空間最優超平面的,也就是說它只能回答屬於正類還是負類的問題。而現實中要解決的往往是多類分類問題,如何將乙個二類分類器轉換成乙個多類分類器呢?

一、一對多方法

比如有k個類別,每次分類都把1個類別作為正樣本,其餘k-1個類別作為負樣本,依次類推。這樣共有k個分類器。

分類時這k個分類器依次對相應類別回答「是」或「不是」,最後得到「是」的類別即為所屬類別。

複雜度:k

優點:分類速度快

缺點:一對多,樣本不均衡。分類重疊現象或者分類不可分現象。

二、一對一方法比如有k個類別,每次分類都把1個類別作為正樣本,另外1個類別作為負樣本,依次類推。這樣共有k*(k-1)/2個分類器。

分類時這k*(k-1)/2個分類器依次回答屬於兩個類別中的哪一類,最後投票統計得票數最高的那個類別即為所屬類別。

複雜度:k*(k-1)/2

優點:沒有分類不可分現象。

缺點:分類重疊現象。

三、dag方法dag的結點從上到下依次為1,2,3,…,k-1個。這樣共有k*(k-1)/2個分類器。 這種方法是構造乙個dag svm,(有向無環的svm)。 還是像一對一方法那樣來訓練,只是在對一篇文章進行分類之前,先按照下面圖的樣子來組織分類器這樣在分類時,我們就可以先問分類器「1對5」(意思是它能夠回答「是第1類還是第5類」),如果它回答5,我們就往左走,再問「2對5」這個分類器,如果它還說是「5」,我們就繼續往左走,這樣一直問下去,就可以得到分類結果。

複雜度:k-1

優點:分類速度快,沒有分類重疊現象或者分類不可分現象。

缺點:分類錯誤累積(前面分類器分類錯誤,後面分類器無法糾正),從上到下節點的選取技巧(參照置信度)。

svm的多類分類問題

最近在看svm用於說話人識別,需要對訓練語音進行正負類區分,從而訓練合適的分類面。現在把自己看的東西大致總結一下,如果有錯的,或者不明白的,請指出,謝謝!傳統的svm使用與說話人確認,因為svm是乙個二分類,而確認也是乙個二分問題,接受 或 拒絕 將目標說話人作為正類,選取合適的冒認者集合作為負類,...

opencv用SVM進行多類分類

include stdafx.h include cv.h include highgui.h include ml.h include include include using namespace std int main int argc,char argv else else 學習資料的現實...

svm 多類劃分問題

一般情況下svm有兩種多類劃分的方法,一種是one vs rest另外一種是pairwise。下面是我根據所閱讀的文獻對兩種多類劃分的理解,請大蝦看看是否正確,並且還附帶有問題 1 one vs rest。假如我有四類要劃分 也就是4個label 他們是a b c d。於是我在抽取訓練集的時候,分別...