支持向量機是一種用來回歸和分類的算法,一般用來進行分類的算法, 它的思想是通過尋找一個最優的超平面,然後将不同标簽的樣本數據進行分離開,如圖所示
超平面的選擇
通過尋找一個超平面,然後将數據集分成兩類, 但是超平面可能會有許多個,哪一個是最好的呢? 如何去确定呢?
情景1: 在這種情況下,超平面B是最好的選擇,因為B可以将數據集很好的分開
情景2:這三個超平面可以将數據集分開,但是超平面C是最好的,此時需要看一看數據點到超平面的最近距離達到最大,這樣可以使得無論正樣本還是負樣本的到超平面的間隔會達到最大
情景3:在這種情況下,應該是選擇超平面A還是超平面B呢? 直觀的看,應該是選擇B,因為它的間隔是最大的,但是這種情況下并沒有正确的進行分類,如果選擇超平面A的話,在訓練集上是分類的很完美,但是在預測的數據集上效果不會很好,因為它的間隔很小,同時由于樣本的噪聲的存在,有些樣本是異常點,即噪聲點,對于新的樣本很容易分類錯誤,實際上就是過拟合,所以應該在目标函數加一些懲罰項,然後讓超平面既要達到間隔最大,又要使得允許一些樣本點分類錯誤
情景4: 在這種情況,無法找到一個超平面将樣本正确的分開,那麼如何去做呢? 采用的方法是是"核技巧",将數據的維度進行擴大,
如在這裡引入z=x2 y2, 當投影到x-z平面上後,可以發現是線性可分了, 如圖所示:
數學表示:
在二維空間上,一條直線方程表示如下:
現在将x軸,y軸重新起個名字,稱為x1, x2, 然後方程變為
然後移項得到:
然後進行向量化後得到:
進一步向量化後得到:
其中,向量w和x分别為:
在這裡w1=a, w2=-1
當将二維空間推廣到n維空間中去, 公式形式沒有變化,
圖1-1
其中w向量和x向量表示如下:
把圖1-1的方程稱為超平面方程
函數間隔與幾何間隔
假設找到一個超平面,将區域分成了兩部分,如圖所示:
并且定義如下,
可以發現,如果能夠正确分類,意味着
因為yi= 1或者-1,可以得到如下的關系:
所以可以稱為yi(wxi b)為函數間隔
幾何間隔的定義:
幾何間隔就是一個點到超平面的距離
仍以二維直線舉例,一個點到直線的距離是:
當将将直線方程擴展到多維,求得我們現在的超平面方程,對公式進行如下變形:
其中||w||稱為範數,數學定義是:
那麼:
對于函數間隔來說,如果将某點的函數間隔擴大k倍,那麼幾何間隔仍然保持不變,
通常為了表示方便, 通過擴大或縮小w,b的系數,使得
此時幾何間隔變為了
如何去找到超平面呢? 我們的目标是讓幾何間隔最大,那麼目标函數如何表示呢? 下節再說
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!