1. 程式人生 > >機器學習-支援向量機

機器學習-支援向量機

  1. 前言

在前面的分類問題中,學到了線性迴歸演算法、Logistic迴歸演算法,以及決策樹中迴歸演算法,我們在資料集中通過訓練資料得到一個很好的擬合數據的模型,在圖中表現為可以找到一條直線來將正反例資料很好的分割開來,例如下圖所示:
這裡寫圖片描述

在圖中的資料集中我們可以找到無數條分割的線,那麼那一條是最好的呢?支援向量機演算法就提供了一個很好的模型。

2.支援向量機初識

支援向量機(support vector machines ,SVM)是一種二分類模型,它的基本模型是定義在特徵空間上的間隔最大的線性分類器,價格最大使它有別於感知機;此外還包括核技巧,來解決非線性可分問題。

支援向量機的學習策略是間隔最大化,可形式化為一個求解凸二次優化問題,也等價於正則化的合頁損失函式的最小化問題。

支援向量機一般分為如下幾類(不同的書上叫法可能有所不同):

這裡寫圖片描述

那麼什麼是分割超平面呢,我們從下圖來看一下:

這裡寫圖片描述

這裡寫圖片描述
我們的目標就是找到最大間隔的超平面。

3.線性可分的支援向量機

標題

這裡寫圖片描述

如上圖所示,藍色的五角星代表反例,紅色的圓圈表示正例,我們可以找到一條線將其完全的分割開來,這樣的資料集就是線性可分的。

那麼在數學上如何來說明呢》我們給定如下的假設:
這裡寫圖片描述

類似於logistic迴歸中我們使用0和1來表示正反例,這裡我們使用-1 和 +1來表示。當y=-1時表示反例,y=+1時表示正例(是為了數學推導方便)。
我們便可以得到如下所示的y(x)的表示式:
這裡寫圖片描述

通過處理
這裡寫圖片描述
為了方便計算我們計算目標函式的對偶問題,相應的約束條件如下
這裡寫圖片描述

得到的新的目標函式很約束條件是一個凸二次的優化問題,我們可以使用拉格朗日乘子法來解決,建立如下的解析式,然後計算其對偶問題:
這裡寫圖片描述

對拉格朗日函式求偏導,得到兩個等式
這裡寫圖片描述

然後將其回代到拉格朗日函式中等到關於α的解,具體的推導過程如下
這裡寫圖片描述

然後繼續求minL(w,b,α)的極大
這裡寫圖片描述

整理目標函式,計算其對偶問題:
這裡寫圖片描述

最後求得最優解α*,我們將其帶入到關於w和b 的表示式,便可以求出分離超平面的方程,進而得到分類決策函式f(x)。
這裡寫圖片描述

這樣我們便得到了一個線性可分的支援向量機模型,其中位於最大分隔面上的點就是所謂的支援向量。

未完待續!有時間再寫