1. 程式人生 > >線性支援向量機

線性支援向量機

現在我們考慮這樣一個問題,我們有時候真的需要把這些樣本點都分對嗎?

在我們對樣本點進行分類的時候並不要求所有的都分對,有一些太偏離的可以不考慮。因此不一定作線性可分SVM,只做線性SVM。若資料線性不可分,則增加鬆弛因子\xi \geq 0,使函式間隔加上鬆弛變數大於等於1。這樣約束條件就變成了y_{i}(wx_{i}+b)\geq 1-\xi _{i}。所以我們可以把SVM看作是一個關於給定一個鬆弛因子作為我們的目標函式,只不過加了一個L2的正則項得到了目標函式:

                                                                    min(w,b)\frac{1}{2}\left \| w \right \|^{2}+C\sum_{i=1}^{n}\xi _{i}

現在我們考慮C取無窮大,即使\xi是一個非常小的數,它乘上C也非常大,那就不可能取最小值嘛。也就是說C非常大的時候就不能有懲罰,不能有錯誤,那也就是說C越小其實能夠保證我們能夠對錯誤能夠更加容忍,就是能夠保證我們這個過渡帶更寬。

現在問一個問題,如果在做SVM的時候發現有過擬合的風險請問我是該調大C還是調小C呢?答案就是我如果想去使得模型有更好的泛化能力來防止過擬合那就讓C儘量的小一點。

線性SVM只是在線性可分的基礎上加上了一個\leqslant C的約束,如果C無窮大那不就相當於線性可分了,沒什麼意義了。