支持向量机算法原理简介
1,支持向量機概念簡介
分類作為數據挖掘領域中一項非常重要的任務,它的目的是學會一個分類函數或分類模型(或者叫做分類器),而支持向量機本身便是一種監督式學習的方法,它廣泛的應用于統計分類以及回歸分析中。
支持向量機(Support Vector Machine,SVM)是90年代中期發展起來的基于統計學習理論的一種機器學習方法,通過尋求結構化風險最小來提高學習機泛化能力,實現經驗風險和置信范圍的最小化,從而達到在統計樣本量較少的情況下,亦能獲得良好統計規律的目的。SVM(support vector machine)簡單的說是一個分類器,并且是二類分類器。 Vector:通俗說就是點,或是數據。 Machine:也就是classifier,也就是分類器。
SVM要解決的問題:
(1)找到決策邊界并決定最好的決策邊界
(2)對于很難分類的特征數據進行分類(核函數變換)
(3)計算復雜度
2,支持向量機算法推導
2.1 決策邊界
選出來離雷區最遠的邊界線(雷區就是邊界上的點,要Large Margin),范圍越大,分類效果越好,算法的泛化能力越強。
2.2 距離的計算
平面代表邊界,w是平面的法向量。計算點x到平面的距離,x’和x’‘是平面上的點,可以將垂線的長度轉化為xx’在法向量方向上的投影,然后消去x’。
2.3 數據標簽定義
數據集:(X1,Y1)(X2,Y2)… (Xn,Yn);X為樣本,Y為標簽,n為樣本數(注意:Y為樣本的類別: 當X為正例,Y>0時候 Y = +1 當X為負例,Y<0時候 Y = -1)
決策方程:
2.4 優化的目標
將點到直線的距離化簡得(去絕對值,y的絕對值為1):
優化的目標:找到一個條線(w和b),使得離該線最近(min)的點能夠最遠(max):
放縮變換:對于決策方程(w,b)可以通過放縮(等比例放大或縮小)使得其結果值|Y|>= 1:
之前我們認為恒大于0,現在嚴格了些。在上述約束條件下,現在目標函數只需要考慮下式:
將求解極大值問題轉換成極小值問題(引入1/2,以方便求導計算):
并且w需滿足以下約束條件:
2.5 目標函數的求解
2.5.1 拉格朗日乘子法
對于帶約束的優化問題有:
原式轉換:
將目標函數代入得:
2.6 SVM求解
分別對w和b求偏導,分別得到兩個條件(由于對偶性質,KKT):
對w求偏導:
對b求偏導:
帶入原式:
繼續對ɑ求極大值:
極大值轉換成求極小值:
其中約束條件為:
3,SVM求解實例
數據:3個點,其中正例 X1(3,3) ,X2(4,3) ,負例X3(1,1)
求解:
約束條件:
將數據代入上式:
由于:
化簡可得:
分別對ɑ1和ɑ2求偏導,令偏導等于0可得:
ɑ2并不滿足約束條件(ɑi>=0),所以解應在邊界上(令ɑ1=0或ɑ2=0)。
將ɑ結果帶入求解:
平面方程為:
在圖像顯示為:
當ɑi=0時,樣本點xi對決策邊界的構成無影響。即邊界上的樣本點(ɑi不為0,支持向量)構成了最終結果。
支持向量:真正發揮作用的數據點,ɑ值不為0的點(只要支持向量不變,樣本點的數量多少不會影響最終結果)。
4,,軟間隔
軟間隔(soft-margin):有時候數據中有一些噪音點,如果考慮它們得到的決策邊界就不太好了。之前的方法要求要把兩類點完全分得開,這個要求有點過于嚴格了,我們引入松弛因子解決上述問題。
松弛因子的表達式:
新的目標函數:
其中,C是我們需要指定的一個參數。當C趨近于很大(需要很小的松弛因子)時:意味著分類嚴格不能有錯誤;當C趨近于很小時:意味著可以有更大的錯誤容忍。
軟間隔算法的求解:
5,低維不可分問題
5.1 核變換:既然低維的時候不可分,可找到一種變換的方法將它映射到高維。
5.2 低維不可分問題實例
假設有兩個數據x=(x1,x2,x3);y=(y1,y2,y3),此時在三維空間很難對其線性劃分。通過對特征進行一系列的組合操作將原始數據映射到九維空間,f(x)=(x1x1,x1x2,x1x3,x2x1,x2x2,x2x3,x3x1,x3x2,x3x3),由于需要計算內積,所以新的數據在九維空間,需要計算<f(x),f(y)>的內積,需要花費(n^2)。
例如令x=(1,2,3),y=(4,5,6),則f(x)=(1,2,3,2,4,6,3,6,9),f(y)=(16,20,24,20,25,36,24,30,36)故<f(x),f(y)>=16+40+72+40+100+180+72+180+324=1024。如果將維數擴大到很大的一個數,計算量將會很大。但是可以發現:K(x,y)=(4+10+18)^ 2 =1024 。 即K(x,y)= (<x,y>)^2=<f(x),f(y)>
使用核函數的好處在于,可以在低維空間去完成高維空間樣本內積的計算(本質上并沒有對原始數據進行映射只是假設是這樣的,實際還是在低維空間中做計算(先內積再映射),只是計算的結果和對應高維空間的計算結果相同)
5.3 高斯核函數(接近無限維的變換)
線性支持向量機(線性核函數)和非線性支持向量機(高斯核函數):
總結
以上是生活随笔為你收集整理的支持向量机算法原理简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求一个姓马好听男孩的名字。
- 下一篇: k?z?