當train data線性可分時,存在多個分離超平面可以把兩類資料正確分開,感知機利用的是誤分類最小的策略,求得分離超平面。但是這是有無窮多個解,而線性svm利用了間隔最大化求分離超平面,解是唯一的,優點是不僅把正負樣本點分開,還對最難分的點(即離超平面最近的點)也有足夠大的確信度將它們分開
希望用乙個平面去劃分類別,一側為正一側為負,vanilla svm就是乙個簡單的用幾何方式完成的二分類監督學習演算法.
在特徵空間中尋找間隔最大的分離超平面使資料得到高效的二分類
有三種情況的svm:
假設有訓練資料集t:
表示點x與超平面的距離,wt⋅
x+bw^t·x+b
wt⋅x+b
的符號與標記類別的符號是否一致表示分類是否正確,所以採用y(w
t⋅x+
b)y(w^t·x+b)
y(wt⋅x
+b)來表示分類的正確性和確信度,這概念叫函式間隔
因為按比例改變w和b,超平面不會有變化,但函式間隔會變化,所以要對超平面的法向量w進行約束,使得間隔確定,變成幾何間隔
函式間隔與幾何間隔的關係:
間隔最大化
約束條件為超平面(w,
b)(w,b)
(w,b
)對於每個樣本點的幾何間隔至少為γ
\color\gamma
γ根據幾何間隔與函式間隔關係,轉化為:
不知道為啥:
所以就變成了這樣:
變成了凸二次規劃問題
使間隔最大化
使樣本正確分類
w是超平面引數,目標一是從點到面的距離公式簡化得到。
目標二與感知機類似,就是把大於等於0進行縮放成大於等於1,便於推導
放寬對樣本的要求,允許少量樣本分類錯誤
引入鬆弛變數δ
>=0
\delta>=0
δ>=0
如何計算鬆弛變數?
0-1損失函式不好求,引入hinge loss(合頁損失)
本來是z=y
i(wt
xi+b
)>=1
z = y_i(w^tx_i+b)>=1
z=yi(
wtxi
+b)
>=1
保證樣本分類正確,現在是知道分類錯誤了,即z小於1,1就作為邊界,用1-z來衡量錯誤的程度
但有要有控制因子去控制這個程度,引入c>0,懲罰引數:c越大,錯誤被放大得越大,即錯誤容忍度小,c無窮大,就是硬間隔。
實際應用時我們要合理選取c,c越小越容易欠擬合,c越大越容易過擬合。
軟間隔目標函式:
優點:凸優化問題,求解一定是全域性最優而不是區域性最優
可用核技巧適用於非線性問題
高維樣本空間也能用,因為資料集複雜度取決於支援向量而不是資料集的維度
缺點:二次規劃問題求解設計m階矩陣計算,svm不適用超大資料集
機器學習 SVM
svm 支援向量機是個二分類模型。給定給乙個包含正例和反例的樣本集合,svm的目的是尋找乙個超平面來對樣本根據正例和反例進行分割。保證最大間隔,間隔最大可以有效避免在分類面上的樣本的誤判率。網上也是對其推崇備至,認為不管什麼任務,先跑跑svm和rf。對於超平面的求取,是乙個凸二次規劃問題,牽扯到對偶...
機器學習SVM
svm支援向量機他是乙個二類分類模型,是給基本模型的特徵空間間隔最大的線性分類器,目的就是求最大間隔 eg 給定一些資料點用x表示資料點,用y表示分的類別 y可以取1或者 1,分別代表兩個不同的類 線性分類器 svm 就是要在n維中找到乙個超平面可以將資料更好的分類 這個超平面的方程可以表示為 wt...
機器學習 SVM
如果沒學過svm的話那就等於沒有學過機器學習。svm作為機器學習中最經典的演算法之一在2012年之前曾叱吒風雲,可以說除了整合演算法或深度學習之外是乙個最好的分類器。svm的型別有三種,即線性可分支援向量機 軟間隔支援向量機以及非線性支援向量機。由於本文是對演算法進行概括,因此手推支援向量機的任務這...