支持向量機
我們要像線性分類器一樣找到一個超平面,不僅能夠對數據點進行一個準確的分隔,同時我們希望所有的點盡量都能夠遠離我們的超平面。
一般來說,我們查找最近點和超平面之間的最大距離,上圖中就是兩邊的Margin和最大。
超平面作為二分類器,如果wx+b>0, 判斷類別y為1, 否則判定為-1。
衡量平面到數據集的距離遠近的標準,需要函數間隔和幾何間隔。
函數間隔
如果正確劃分,函數間隔的值永遠為正數。值越大,說明點離平面越遠,分類的可靠程度更高
幾何間隔
表示點到超平面的距離。
但是該間距是帶符號的,所以為了取正值,我們可以通過乘以y獲得。(f(x)為正時y為1,f(x)為負時y為-1)
下圖為正值的幾何間距。
SVM基本形式
我們可以發現,如果同時擴大w和b的相同倍數,既擴大函數間隔n倍,則分子擴大n倍,分母也同時擴大n倍,那么幾何間距實際上不受影響。
我們通過同時縮放ω和b讓距離超平面最近的那些樣本點的函數間隔為1。那么最近點函數間隔為1,其余點函數間隔大于1.(為啥取1,是因為方便計算)
那么我們可以得出SVM的基本形式。
求解模型
根據上述約束,我們根據拉格朗日函數進行轉換,變為以下問題:
通過計算上式的拉格朗日乘子:阿爾法a,我們可以得到最優解的 w 和 b。
低維映射到高維解決線性不可分問題
當超平面無法進行分割時,我們該怎么辦?
一個合適的思路是將樣本從原始空間映射到一個更高維的特征空間,使得樣本在這個特征空間內線性可分。
比如上圖,無法線性分割。如果原來的數據是 x ,我們給它增加一個維度 x2,從一維變成二維,數據就變成了這樣
回到一維中,其實就是這樣的一條曲線 x2 - x = 0:
核函數
我們通過映射函數講上面問題轉換為
由于樣本 xi 和 xj 映射到特征空間之后的內積因為維數可能很高,所以比較難直接計算。為了避開這個障礙,我們設計了“核函數”(kernel function),這個函數使得 xi 和 xj 在特征空間的內積等于它們在原始樣本空間中通過核函數 k(xi, xj) 計算的結果。
這樣我們就避免了求映射函數,只通過一個核函數就可以在低維空間完成高維空間中才能完成的事!
如果特征維度為 n ,映射的階數為 d,那我們可以得到的結果是:
屏幕快照 2018-02-28 下午12.29.46.png