tft每日頭條

 > 生活

 > 支持向量機svm的優勢和缺點

支持向量機svm的優勢和缺點

生活 更新时间:2024-08-09 08:19:42
Support Vector Machines 支持向量機

Created: Apr 14, 2020 5:28 PM

什麼是支持向量機?

支持向量機是一個分類算法,它的目标不僅是分類數據,而且尋找最大界線。提高模型的魯棒性。

大家可以思考以下,下面兩條黃色和綠色的線,哪一條線更好? 雖然兩條線都可以把紅色的點和藍色的點分開,但是對比之後,我們發現黃色的線離點的距離更遠,所以左邊的線更好。

支持向量機svm的優勢和缺點(機器學習Support)1

分類問題就是我們要找到一條線把紅色和藍色的點分開,我們還想更近一步,讓這條線盡可能離這些點遠,所以我們可以再增加兩條線,然後嘗試使這兩條線之間的距離間隔最大化。

支持向量機svm的優勢和缺點(機器學習Support)2

目标函數

支持向量機算法不僅要求正确的分類,而且要求它的間隔最大,所以我們就有兩個衡量指标,一個是分類錯誤的指标,一個是間隔的指标

ERROR = CLASSIFICATION ERROR MARGIN ERROR

分類誤差

下面圖的分類問題,線的方程是wx b=0,然後再在線的兩側在加兩條線形成間隔,即

wx b=1和wx b=-1,我們不希望兩條中間有任何點,我們把這些點看成是誤分類的點,

支持向量機svm的優勢和缺點(機器學習Support)3

我們可以通過下圖計算除誤差Error=1.5 3.5 0.5 2 3 0.3=10.8

支持向量機svm的優勢和缺點(機器學習Support)4

間隔誤差

我們可以使用梯度下降法将誤差最小化,我們需要編寫一個函數,使得在間隔最大的情況下誤差最小,以及在間隔小的情況下誤差最大。為什麼這樣做的原因是我們想獲得盡可能大的間隔模型。

支持向量機svm的優勢和缺點(機器學習Support)5

公式為:

支持向量機svm的優勢和缺點(機器學習Support)6

下面我們舉例來說明,我們可以根據公式計算除第一個模型的Margin更大是2/5,Error更小是25,另外一個的Margin更小是1/5,Error更大是100

支持向量機svm的優勢和缺點(機器學習Support)7

支持向量機svm的優勢和缺點(機器學習Support)8

如何計算間距?

這裡我們可以定義W=(w1, w2)和x= (x1, x2),所以Wx=w1x1 w2x2

三條線的方程是:

支持向量機svm的優勢和缺點(機器學習Support)9

為了找到第一條線和第三條線之間的距離,我們隻要找到第一條和第二條之間的距離,然後乘以2。

支持向量機svm的優勢和缺點(機器學習Support)10

我們可以平移這兩條線,使一條線經過原點。方程就變成

支持向量機svm的優勢和缺點(機器學習Support)11

第一條線的方程Wx = 0,這意味着它與紅色的向量W=(w1,w2)正交(垂直)

支持向量機svm的優勢和缺點(機器學習Support)12

我們假設(p, q)是該向量與Wx=1相交的點,即藍色的點,因為(p,q) 在該向量上,所以可以得到如下的公式,(p,q)是(w1,w2)的倍數,我們假設是k倍。

支持向量機svm的優勢和缺點(機器學習Support)13

将(p,q)= k(w_1,w_2)帶入第一個方程就有:

支持向量機svm的優勢和缺點(機器學習Support)14

所以藍色點的向量是w/|w|2,兩條之間的距離是藍色向量的範數。

支持向量機svm的優勢和缺點(機器學習Support)15

因此總距離為2/|W|

支持向量機svm的優勢和缺點(機器學習Support)16

SVM C參數 松弛變量

我們看一種特殊情況,下圖中那一條線更好?這個要看具體情況而定,比如在醫學模型中,我們希望它盡量準确無誤,所以我們選擇右邊的模型,其他情況下我們選擇左邊,即使有一個被錯誤分類了,但是它的間隔更大。根據不同的需求,我們的選擇也不同。所以我們加入了參數C

支持向量機svm的優勢和缺點(機器學習Support)17

Error = C*Calssification Error Margin Error

支持向量機svm的優勢和缺點(機器學習Support)18

完全可分的情況我們稱為硬間隔,當存在不完全可分的情況,我們稱為軟間隔。

拉格朗日乘子法

目标函數:

支持向量機svm的優勢和缺點(機器學習Support)19

拉格朗日Lagrange乘子法

支持向量機svm的優勢和缺點(機器學習Support)20

Lagrange函數

支持向量機svm的優勢和缺點(機器學習Support)21

引入拉格朗日的目标函數為:

支持向量機svm的優勢和缺點(機器學習Support)22

求L對于w,b的偏導數,并等于0

支持向量機svm的優勢和缺點(機器學習Support)23

支持向量機svm的優勢和缺點(機器學習Support)24

支持向量機svm的優勢和缺點(機器學習Support)25

核方法

線性不可分的情況下,用核函數将樣本投射到高維空間,使其變成可分的情況,

多項式核方法

對與下圖的樣本,我們無法找到一條直線來把藍色和紅色點分開。我們可以把它轉化為關于平面的二維問題,增加一個y軸。我們可以創建一個抛物線, 然後把點移到抛物線上。我們可以找到y=4這條線把藍色和紅色的點分開

支持向量機svm的優勢和缺點(機器學習Support)26

支持向量機svm的優勢和缺點(機器學習Support)27

核函數就像一個工具箱,對于線性核,我們的工具就隻有x,y,我們尋找任何關于這兩個變量的線性組合方程式。如果我們把它擴展為一個多項式核函數,我們的工具箱就由x,y,xy,x2,y2,我們可以創建很多核函數,例如⚪x2 y2=1,雙曲線xy=1,抛物線y=x2。我們在數據上增加一些維度,尋找一個更高維度的表面,然後投射到平面上形成曲線。

支持向量機svm的優勢和缺點(機器學習Support)28

RBF核或徑向基核函數

我們要想分離這些點,同樣沒有一條直線可以做到這點,我們在這畫一個小山脈,把這些點移到山脈上,

支持向量機svm的優勢和缺點(機器學習Support)29

我們就可以找到這幾條線可以把他們區分開,然後再回到原來的線上,就得到的分界線。

支持向量機svm的優勢和缺點(機器學習Support)30

我們假設這裡有三座山,每個點上有一個,我們可以使用向量記錄這座山的高度,第一個點的第一座上高是1,第二座和第三座的高度是0.8和0.2,注意,每個點上構建的山的高度值中都有一個1,。我們把這三個向量繪制在三維空間。

支持向量機svm的優勢和缺點(機器學習Support)31

他們就像三個基向量,我們在三維空間就可以把他們分開。

支持向量機svm的優勢和缺點(機器學習Support)32

我們可以選擇一種徑向基函數,是選擇陡峭的還是平緩的。我們可以在他們的映射中看到,陡峭可能導緻過拟合,平緩有可能欠拟合。

支持向量機svm的優勢和缺點(機器學習Support)33

支持向量機svm的優勢和缺點(機器學習Support)34

支持向量機svm的優勢和缺點(機器學習Support)35

如何選擇呢,我們用到高斯分布。sigma和曲線的寬度有關,sigma越大,曲線越寬, sigam越小,曲線越窄。

支持向量機svm的優勢和缺點(機器學習Support)36

高維空間

支持向量機svm的優勢和缺點(機器學習Support)37

優缺點

優點

- SVM的主要優勢是訓練相對容易。 與神經網絡不同,沒有局部最優

- 非線性SVM使用非線性内核。 非線性SVM意味着算法計算的邊界不必是直線。 好處是捕獲數據點之間複雜的情況,不必執行困難的轉換。 缺點是訓練時間長得多,因為它需要大量的計算。

- SVM具有正則化參數,可以幫助避免過度拟合。

- 在高維空間有效。

- 在維數大于樣本數的情況下仍然有效。

- 在決策函數中使用訓練點的子集(稱為支持向量),因此它還可以提高内存效率

缺點

- 與Logistic回歸分類器不同,SVM不直接提供概率估計。

- 在許多分類問題中,你實際上希望獲得類成員身份的概率

- 求解模型的參數難以解釋。

- 對大型數據集的培訓時間長

- 選擇一個“好的”内核可能很棘手。

LR與SVM區别

相同點:

1、都是分類算法,都是監督學習

2、如果不考慮核函數,LR和SVM都是線性分類算法

3、LR和SVM都是判别模型

不同點:

1、本質上是loss函數不同,或者說分類的原理不同。

2、支持向量機隻考慮局部的邊界線附近的點,而邏輯回歸考慮全局(遠離的點對邊界線的确定也起作用,雖然作用會相對小一些)。

3、在解決非線性問題時,支持向量機采用核函數的機制,而LR通常不采用核函數的方法。

4、SVM計算複雜,但效果比LR好,适合小數據集;LR計算簡單,适合大數據集,可以在線訓練。

5、線性SVM依賴數據表達的距離測度,所以需要對數據先做normalization,LR不受其影響

支持向量機svm的優勢和缺點(機器學習Support)38

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved