用python進行數據挖掘和機器學習一直很火,所以近段時間就在自學《機器學習實戰》這本書,發現裏面講支持向量機時對原理公式的推導講得並不詳細,上網查資料發現講得並不很系統,有點零碎的感覺,導致對於我這種小白的童鞋來說頗爲艱難,因此經過長時間的資料查詢後準備綜合各路大神的思路和我自己的理解來寫一波關於公式原理推導的文章。文章以《機器學習實戰書》爲進度進行步步拆解(大神可以略過啦~正在奮鬥的小白也可以私下交流共同學習)。
SVM指的是支持向量機(外文名Support Vector Machine),在機器學習領域,是一個有監督的學習模型,通常用來進行模式識別、分類以及迴歸分析。
我們這裏以二維圖線性分類爲例進行講解,在對如下圖A進行分類時,可得到很多個分割超平面,然而我們要從中選擇最優的分割超平面,這便是SVM的要做的,選出最優的分割超平面。
那麼什麼樣的平面爲最優的分割超平面呢?就像上圖D一樣,使距離分割超平面最近的點與超平面的間隔最大便是我們要尋找的,這裏距離分割線最近的點就叫做支持向量,分割線就叫做分割超平面,支持向量與分割超平面就叫做」間隔」。我們所要做的就是最大化這個間隔。
一、首先我們得簡單推導一下座標點A到過原點直線L的距離。我們有過原點的直線L:W^tX=0(它的法向量爲W),座標向量A,求A向量在W向量上投影P向量的模長(即A點到直線L的距離)
二、下面我們推導一下A點到不過原點的直線L的距離:我們有直線L:W^tX+b=0,座標向量A。