1.SVM講解
SVM是一個很復雜的算法,不是一篇博文就能夠講完的,所以此篇的定位是初學者能夠接受的程度,並且講的都是SVM的一種思想,通過此篇能夠使讀着會使用SVM就行,具體SVM的推導過程有一篇博文是講得非常細的,具體鏈接我放到最后面,供大家參考。
1.1支持向量機(SVM)的由來
首先我們先來看一個3維的平面方程:Ax+By+Cz+D=0
這就是我們中學所學的,從這個方程我們可以推導出二維空間的一條直線:Ax+By+D=0
那么,依次類推,更高維的空間叫做一個超平面:
x代表的是一個向量,接下來我們看下二維空間的幾何表示:
SVM的目標是找到一個超平面,這個超平面能夠很好的解決二分類問題,所以先找到各個分類的樣本點離這個超平面最近的點,使得這個點到超平面的距離最大化,最近的點就是虛線所畫的。由以上超平面公式計算得出大於1的就屬於打叉分類,如果小於0的屬於圓圈分類。
這些點能夠很好地確定一個超平面,而且在幾何空間中表示的也是一個向量,那么就把這些能夠用來確定超平面的向量稱為支持向量(直接支持超平面的生成),於是該算法就叫做支持向量機(SVM)了。
1.2如何找到超平面
函數間隔
在超平面wx+b=0確定的情況下,|wx+b|能夠表示點x到距離超平面的遠近,而通過觀察wx+b的符號與類標記y的符號是否一致可判斷分類是否正確,所以,可以用(y(w*x+b))的正負性來判定或表示分類的正確性。於此,我們便引出了函數間隔(functional margin)的概念。定義函數間隔(用 表示)為:
但是這個函數間隔有個問題,就是我成倍的增加w和b的值,則函數值也會跟着成倍增加,但這個超平面沒有改變。所以有函數間隔還不夠,需要一個幾何間隔。
幾何間隔
我們把w做一個約束條件,假定對於一個點 x ,令其垂直投影到超平面上的對應點為 x0 ,w 是垂直於超平面的一個向量,為樣本x到超平面的距離,如下圖所示:
根據平面幾何知識,有
1.3最大間隔分類器
對一個數據點進行分類,當超平面離數據點的“間隔”越大,分類的確信度(confidence)也越大。所以,為了使得分類的確信度盡量高,需要讓所選擇的超平面能夠最大化這個“間隔”值。這個間隔就是下圖中的Gap的一半。
1.4后續問題
至此,SVM的第一層已經了解了,就是求最大的幾何間隔,對於那些只關心怎么用SVM的朋友便已足夠,不必再更進一層深究其更深的原理。
SVM要深入的話有很多內容需要講到,比如:線性不可分問題、核函數、SMO算法等。
在此推薦一篇博文,這篇博文把深入的SVM內容也講了,包括推導過程等。如果想進一步了解SVM,推薦看一下:
支持向量機通俗導論:https://blog.csdn.net/v_JULY_v/article/details/7624837#commentBox
1.5新聞分類實例
尋覓互聯網,少有機器學習通俗易懂之算法講解、案例等,項目立於這一問題之上,整理一份基本算法講解+案例於文檔,供大家學習之。通俗易懂之文章亦不可以面概全,但凡有不正確或爭議之處,望告知,自當不吝賜教!
.
.
.
.
歡迎添加微信交流!請備注“機器學習”。