當用支援向量機進行分類時,支援向量越多越好還是越少越好?

時間 2021-06-03 02:11:48

1樓:文之兔

你問的是soft margin的情況吧

tunning parameter 是用來調對mis classification 的懲罰度,懲罰越大,margin越窄,support vector 越少,但是這樣會不robust,也就是稍微變動一下,separating hyperplane 就變很多。

懲罰度小,則反之。

總結:bias 和 robustness 之間的trade off

2樓:

好久沒答過專業問題了,來湊個熱鬧吧。

支援向量機實際上是在特徵空間中學習乙個分隔平面。在n維空間中的平面的一般形式可以寫為

只考慮簡單情況的硬間隔支援向量機,只有支援向量是被用來確定間隔平面的,而其他的資料點對於間隔平面的確定沒有任何作用,也就是說我們可以把他們去掉。

考慮到所有支援向量到平面的距離是完全相同的,因此有

取所有的支援向量。在n維的特徵空間中,這一組方程總共有n+2個未知量。考慮到 其實是線性相關的,也就是可以同時乘以某個係數而不改變間隔平面。

因此唯一確定間隔平面總共需要解n+1個未知量,我們需要這樣的n+1個方程,也就是n+1個支援向量(不考慮退化情況)。

該圖表示了,在二維的特徵空間中,一般需要3個支援向量用來確定分隔平面。

結論:在n維特徵空間中,線性SVM一般會產生n+1個支援向量(不考慮退化情況)

通常的SVM的使用會伴隨著核技巧(kernel),這用於將低維空間對映到乙個更高維的空間,使得原本不線性可分的資料點變得在高維空間中線性可分。雖然這種對映是隱式的,我們通常並不知道對映到的空間是什麼樣子。但是根據之前的結論,我們可以認為如果訓練出來的SVM有d+1個支援向量,這個kernel在這個任務裡就講原來的資料對映到了乙個d維的空間中,並使得其線性可分。

更高的維度通常意味著更高的模型複雜度,所以支援向量越多,表示著訓練得到的模型越複雜。根據泛化理論,這意味著更有過擬合的風險。

如果在效能一致的情況下,更少的支援向量可能是更好的。但是這一點其實不絕對,因為泛化理論僅僅是誤差的上界,實際的泛化情況的決定因素比較複雜,也可能取決於kernel的性質。所以還是自己做cross validation比較好。

軟間隔支援向量機的結論應該也比較類似,不多說了。

如何系統地學習支援向量機(SVM)?

時間有限,先簡單嘗試給一些前期可以操作的事情。凡事先從簡單問題想起。SVM的核心概念是 SV Support Vector SV的定義則離不開分離超平面與特殊樣本。在經典二分類的場景下,最易想到的是找一條直線將兩類樣本分開,如果存在這樣的直線,稱我們的樣本是線性可分的,否則是線性不可分 試想異或XO...

什麼是一類支援向量機(one class SVM),是指分兩類的支援向量機嗎?

李淼robot One Class SVM 是指你的training data 只有一類positive 或者negative 的data,而沒有另外的一類。在這時,你需要learn的實際上你training data 的boundary。而這時不能使用 maximum margin 了,因為你沒有...

怎麼理解相關向量機(RVM)中的相關向量?

西貝 Tipping RVM的作者 說RVM是一種用於回歸和分類的貝葉斯稀疏核算法,和SVM很像,但是避免了SVM的諸多缺點。例如,SVM無法計算樣本輸出的後驗概率分布,SVM不太適用於多分類問題,SVM的超引數需要通過交叉驗證得到,這就非常耗費時間,而且SVM的核函式必須是正定的。而RVM卻避免了...