支持向量機 分類 線性可分支持向量機 線性支持向量機 非線性支持向量機 1 線性可分支持向量機 首先假設數據是線性可分的,學習目標是在特征空間中找到一個分離超平面,能將實例分到不同的類,這樣的超平面是無限多的,但如果要求間隔最大化,那解就是唯一的。 上面所說的間隔是幾何間隔,但我們先介紹一下函數間隔。 函數間隔其實就是數據點x離超平面的遠近表示,也就是距離,然后他的符號可以表示預測的正確與否,它的定義公式是:γi=yi(w*xi+b),但函數間隔有個問題如果成比例的改變w和b,超平面不會改變,但函數間隔是以前的兩倍了,所以我們對w加些約束,例如使w向量的第二范數為 1,這時的函數間隔就成為了幾何間隔,支持向量機的核心思想也是它的優化方向:間隔最大化中的間隔指的就是這個幾何間隔。 根據函數間隔和幾何間隔的定義,最后支持向量機的算法也就是最大間隔法,求的是二分之一的w向量的平方的最小值。 求線性可分支持向量機的最優化問題,應用拉格朗日對偶性,先求出對偶問題的解阿爾法,根據阿爾法求原始問題的解w和b,這種算法稱為線性可分支持向量機的對偶學習算法,是它的基本算法。 2 線性支持向量機 因為現實生活中數據不可能像我們剛才說的假設一樣是完全線性可分的,免不了有噪聲,所以有線性支持向量機,使向量機在數據有噪聲的情況下依然可用。 原理:在線性SVM的基礎上加入一個松弛變量埃普西隆和懲罰參數c,這樣得到的間隔最大化稱為軟間隔最大化 3 非線性支持向量機 有的數據是非線性的,例如正例都在一個圓內,反例都在圓外,像這樣的問題,線性法是求不了解的 非線性支持向量機的思想是利用核技巧,將非線性空間的特征點映射到線性空間中,再用線性法來求解 常用的核函數有: 多項式核函數 高斯核函數 字符串核函數 4 SMO算法(sequential minimal optimization 序列最小最優化) 它是一種啟發式算法,基本思路是如果所有變量都滿足最優化問題的KKT條件,那么這個最優化問題的解就得到了,因為KKT條件是最優化問題的充分必要條件。 SMO算法的主要思想是將原問題不斷分解為子問題并對子問題求解,以求解原問題。