天天看點

【機器學習】今天詳細談下Soft Margin SVM和 SVM正則化

導讀

昨天詳細談了談最簡單的SVM,相比較于今天要講的Soft Margin SVM來說,昨天講的其實是Hard Margin SVM,沒看過的朋友們可以點選這裡:

【機器學習】今天想跟大家聊聊SVM

為什麼提出Soft Margin SVM

還是舉一個例子吧

【機器學習】今天詳細談下Soft Margin SVM和 SVM正則化

該點屬于藍色類别,是以決策線如圖所示。但是這個決策邊界如果運用到現實環境中的話,肯定會有很大的誤分類點。也就是該分類線沒有泛化能力。關于上述的情況,其實我們的理想分類線應該為:

【機器學習】今天詳細談下Soft Margin SVM和 SVM正則化

雖然在訓練集中分類效果不好,但是它具有一定的泛化能力!畢竟我們的模型最終都是要用到現實生活中去的。

再比如存線上性不可分的點,但還是理想情況還是可以分的情況,如

【機器學習】今天詳細談下Soft Margin SVM和 SVM正則化

而能解決上述2種問題的SVM就被成為Soft Margin SVM,允許一些點進行錯誤分類。

Soft Margin SVM理論

我們先回顧下之前的SVM(Hard Margin SVM)的優化公式:

【機器學習】今天詳細談下Soft Margin SVM和 SVM正則化

像上述距離的兩種情況不能分類的具體原因就是該條件的限制:

【機器學習】今天詳細談下Soft Margin SVM和 SVM正則化

現在我們允許一些點犯錯,也就是允許一些點不滿足這個公式,放放水,是以對每個點引入一個松弛變量(大于等于0),使得

【機器學習】今天詳細談下Soft Margin SVM和 SVM正則化

+它的松弛變量 >= 1

即可,轉換下公式為

【機器學習】今天詳細談下Soft Margin SVM和 SVM正則化

>= 1 - 它的松弛變量

上述式子的專業公式為:

【機器學習】今天詳細談下Soft Margin SVM和 SVM正則化

但是松弛變量也不能太大,得需要有東西看着它,怎麼看着呢?當然就是用目标函數啦。又因為每個資料點都有自己的松弛變量,是以需要需要求和作為最終目标函數的一部分:

【機器學習】今天詳細談下Soft Margin SVM和 SVM正則化

但是這樣的目标函數

【機器學習】今天詳細談下Soft Margin SVM和 SVM正則化

表示a和b重要性是相同的。但是實際上a,b是有各自的權重的,但是這裡其實隻要在b部分加個權重C即可:

【機器學習】今天詳細談下Soft Margin SVM和 SVM正則化

當C越大時,代表主要是優化b部分,是以就對于b項很嚴格,最終就使得結果越接近Hard Margin SVM。反之,當C越小時,代表主要優化a部分,就對于b寬松很多,最終就是的結果非常的Soft Margin SVM。如何選擇C值,自己調試即可。

是以最終的完整目标函數為:

【機器學習】今天詳細談下Soft Margin SVM和 SVM正則化

SVM正則化

正則化,聽起來有難度的趕腳,但是實際上很簡單,比如上述的目标函數就是L1正則:

【機器學習】今天詳細談下Soft Margin SVM和 SVM正則化

這裡的L1正則說的是松弛變量的幂。那樣這樣就很好了解L2正則啦:

【機器學習】今天詳細談下Soft Margin SVM和 SVM正則化

常用的是L2正則,個人覺得是實驗效果決定的結果吧。

代碼實踐

這裡用的是sklearn來實踐的

資料介紹

【機器學習】今天詳細談下Soft Margin SVM和 SVM正則化

初始化SVM C = 1e9

【機器學習】今天詳細談下Soft Margin SVM和 SVM正則化

SVM還有很多參數,感興趣的可以自行了解哈。

可視化

【機器學習】今天詳細談下Soft Margin SVM和 SVM正則化
【機器學習】今天詳細談下Soft Margin SVM和 SVM正則化

改變C的值,C = 0.01

【機器學習】今天詳細談下Soft Margin SVM和 SVM正則化
【機器學習】今天詳細談下Soft Margin SVM和 SVM正則化

注意到該點的分類變化。

PS:今天就到這裡吧,下次會帶來對偶問題和核函數,以及SVM的回歸模型。敬請期待!

IELTS a bit

documentation n. 檔案,證明檔案,史實,檔案編制

clientele n. 客戶;訴訟委托人

sequential adj. 連續的;相繼的;有順序的

conclusive adj. 決定性的;最後的;确定的;确實的;确定性的

introspection n. 内省;檢討