算法簡介
● SVM ( Support Vector Machines )是分類算法中應用廣泛、效果不錯的一-類。由簡至繁SVM可分類爲三類:線性可分( linear SVM in linearly separable case )的線性SVM、線性不可分的線性SVM、非線性( nonlinear ) SVM。
● 線性可分SVM的基本思想:將向量映射到- -個更高維的空間裏,在這個空間裏建立有一一個最大間隔超平面。在分開數據的超平面的兩邊建有兩個互相平行的超平面。建立方向合適的分隔超平面使兩個與之平行的超平面間的距離最大化。
● 對於二類分類問題,訓練集T={(x1,y1)(x2,y2),…,(xN,yN)} , 其類別yi∈{0,1} ,
線性SVM通過學習得到分離超平面( hyperplane )以及相應的分類決策函數:
W. x+b= 0
f(x)= sign(w.x + b)
● 將距離分離超平面最近的兩個不同類別的樣本點稱爲支持向量( support vector )的,構成了兩條平行於分離超平面的長帶, 二者之間的距離稱之爲margin。顯然, margin更大,則分類正確的確信度更高(與超平面的距離表示分類的確信度,距離越遠則分類正確的確信度越高)。通過計算容易得到:d=2/ ||w||
● margin以外的樣本點對於確定分離超平面沒有貢獻,換句話說, SVM是有很重要的訓練樣本(支持向量)所確定的。至此, SVM分類問題可描述爲在全部分類正確的情況下,最大化margin。線性分類的約束最優化問題:
具體計算
SVM尋找區分兩類的超平面( hyper plane),使邊際(margin)最大
w.x1+b= 1
w.X2+b=-1
兩式相減:
w.(x1-x2)= 2
||w|| ||(x1一x2)|| cos(a)= 2
||w|| *d=2
d=2/ ||w||
轉載:https://www.bilibili.com/video/BV1Rt411q7WJ?p=63