1、離群點
在最開始討論支持向量機的時候腺兴,我們就假定左电,數(shù)據(jù)是線性可分的,亦即我們可以找到一個可行的超平面將數(shù)據(jù)完全分開页响。后來為了處理非線性數(shù)據(jù)篓足,使用核方法對原來的線性 SVM 進行了推廣,使得非線性的的情況也能處理闰蚕。雖然通過映射 ?(?) 將原始數(shù)據(jù)映射到高維空間之后栈拖,能夠線性分隔的概率大大增加,但是對于某些情況還是很難處理没陡。例如可能并不是因為數(shù)據(jù)本身是非線性結構的涩哟,而只是因為數(shù)據(jù)有噪音。對于這種偏離正常位置很遠的數(shù)據(jù)點盼玄,我們稱之為離群點(outlier)贴彼,在我們原來的 SVM 模型里,離群點的存在有可能造成很大的影響埃儿,因為超平面本身就是只有少數(shù)幾個support vector 組成的器仗,如果這些 support vector 里又存在離群點的話,其影響就很大了蝌箍。例如下圖:
用黑圈圈起來的那個藍點是一個離群點青灼,它偏離了自己原本所應該在的那個半空間暴心,如果直接忽略掉它的話妓盲,原來的分隔超平面還是挺好的,但是由于這個離群點的出現(xiàn)专普,導致分隔超平面不得不被擠歪了悯衬,變成途中黑色虛線所示(這只是一個示意圖,并沒有嚴格計算精確坐標),同時間隔也相應變小了筋粗。當然策橘,更嚴重的情況是,如果這個離群點再往右上移動一些距離的話娜亿,我們將無法構造出能將數(shù)據(jù)分開的超平面來丽已。
那么SVM是如何處理這些離群點的呢?
2买决、離群點處理
為了處理這種情況沛婴,SVM 允許數(shù)據(jù)點在一定程度上偏離一下超平面。例如上圖中督赤,黑色實線所對應的距離嘁灯,就是該離群點偏離的距離,如果把它移動回來躲舌,就剛好落在原來的超平面上丑婿,而不會使得超平面發(fā)生變形了。具體來說没卸,原來的約束條件:
現(xiàn)在變成:
其中 ξi≥0 稱為松弛變量 (slack variable) 羹奉,對應數(shù)據(jù)點 xi 允許偏離的函數(shù)間隔的量。當然约计,如果我們運行 ξi 任意大的話尘奏,那任意的超平面都是符合條件的了。所以病蛉,我們在原來的目標函數(shù)后面加上一項炫加,使得這些 ξi 的總和也要最小:
其中 C 是一個參數(shù)铺然,用于控制目標函數(shù)中兩項(“尋找 間隔最大的超平面”和“保證數(shù)據(jù)點偏差量最小”)之間的權重俗孝。注意,其中 ξ 是需要優(yōu)化的變量(之一)魄健,而 C 是一個事先確定好的常量赋铝。完整地寫出來是這個樣子:
用之前的方法將限制加入到目標函數(shù)中,得到如下問題:
和原先求解方法一樣沽瘦,我們通過構造原問題的對偶問題來進行求解:
將 w 帶回 并化簡革骨,得到和原來一樣的目標函數(shù):
不過,由于我們得到 C?αi?ri=0 析恋,而又有 ri≥0 (作為 Lagrange multiplier 的條件)良哲,因此有 αi≤C ,所以整個 dual 問題現(xiàn)在寫作:
和之前的結果對比一下助隧,可以看到唯一的區(qū)別就是現(xiàn)在 dual variable α 多了一個上限 C 筑凫。而 Kernel 化的非線性形式也是一樣的,只要把 ?xi,xj? 換成 κ(xi,xj) 即可。這樣一來巍实,一個完整的滓技,可以處理線性和非線性并能容忍噪音和 離群點的支持向量機才終于介紹完畢了。