分類 SVM 支援向量機

2021-06-28 23:58:36 字數 2662 閱讀 4550

svm, support vector machine,可用於模式分類和非線性回歸。

支援向量機的主要思想是建立乙個分類超平面作為決策曲面,使得正例和反例之間的隔離邊緣被最大化。支援向量機的理論基礎是統計學習理論,更精確的說,支援向量機是結構風險最小化的近似實現。這個原理基於這樣的事實:學習機器在測試資料上的誤差率(即泛化誤差率)以訓練誤差率和乙個依賴於vc維數(vapnik-chervonenkis dimension)的項的和為界,在可分模式情況下,支援向量機對於前一項的值為零,並且使第二項最小化。因此,儘管它不利用問題的領域內部問題,但在模式分類問題上支援向量機能提供好的泛化效能,這個屬性是支援向量機特有的。

二分類問題中,n個資料點的資料集共有2^n種排列可能,若對於其中的任意乙個排列,假設空間h總能夠將兩類資料點分開,那麼就說vc(h)=n。比如二維空間中,假設空間h是直線,它的vc維就是3。

vc維是對假設h(hypothesis)的解決問題的能力的度量。

這個與問題真實解之間的誤差,就叫做風險(更嚴格的說,誤差的累積叫做風險)。真實風險應該由兩部分內容刻畫,一是經驗風險,代表了分類器在給定樣本上的誤差;二是置信風險,代表了我們在多大程度上可以信任分類器在未知文字上分類的結果。很顯然,第二部分是沒有辦法精確計算的,因此只能給出乙個估計的區間,也使得整個誤差只能計算上界,而無法計算準確的值(所以叫做泛化誤差界,而不叫泛化誤差)。

一般地,如果乙個線性函式能夠將樣本完全正確的分開,就稱這些資料是線性可分的,否則稱為非線性可分的。

什麼叫線性函式呢?在一維空間裡就是乙個點,在二維空間裡就是一條直線,三維空間裡就是乙個平面,可以如此想象下去,如果不關注空間的維數,這種線性函式還有乙個統一的名稱——超平面(hyper plane)!

超平面為\mathbf w^t \mathbf x+b=0, y \in \, 為正負樣例的標籤, 那麼兩種樣本點到平面的距離為

\begin & \arg \max_ \gamma \\ & s.t. \ y_i (\frac ) \ge \gamma, \text \end \tag 2

約束條件表明任何乙個樣本點到超平面的幾何距離都至少為\gamma, 我們希望最大化這個最小距離.

考慮到式1, 問題轉化為

\begin & \arg \max_ \frac \\ & s.t. \ y_i (\mathbf w^t \mathbf x_i+b) \ge \hat \gamma, & \end \tag 3

函式間隔\hat \gamma的取值並不影響最優化問題的解, 就可以取\hat \gamma =1d 最大化\frac 與最小化\frac 1 2 ||\mathbf w||^2是等價的.

基於上面兩條原因, 轉化為等價問題

\begin & \arg \min_ \frac 1 2 ||\mathbf w||^2 \\ & s.t. \ \ y_i (\mathbf w^t \mathbf x_i+b) -1 \ge 0, & \end \tag 4

這是乙個凸二次優化問題,直接解有困難,可以通過拉格朗日對偶問題來解決.

應用拉格朗日對偶性, 通過求解對偶問題(dual problem)得到原始問題(primal problem)的最優解, 這就是線性可分支援向量機的對偶演算法.

而拉格朗日方程的構造規則是:用約束方程乘以非負的拉格朗日係數\alpha,然後再從目標函式中減去。於是得到拉格朗日方程如下:

\begin l(w,b,\alpha)&=\frac||\vec w||^2-\sum_^n \\ & =\frac||\vec w||^2-\sum_^n^n\alpha_i} \tag 5 \end

這裡的\alpha =(\alpha_1, ... , \alpha_n)^t為拉格朗日乘子向量.

根據拉格朗日對偶性, 原始問題的對偶問題是極大極小問題

\max_\alpha \min_ l(w,b,\alpha) \tag6

所以為了得到對偶問題的解, 需要先求l(w,b,\alpha)對w,b的極小, 再求對\alpha的極大.

將拉格朗日函式分別對w,b 求偏導並令其等於0.

\nabla_w l(w, b, \alpha)=w-\sum_^n\alpha_i \vec x_i y_i=0\tag 7

\nabla_b l(w, b, \alpha)=\sum_^n\alpha_i y_i=0 \tag 8

得 w=\sum_^n\alpha_i \vec x_i y_i\tag 9

\sum_^n\alpha_i y_i=0 \tag

將式(9)與式(10)代入式(5)得

\begin l(w, b, \alpha)& =\frac \sum_^n \sum_^n \alpha_i \alpha_j y_i y_j (x_i \centerdot x_j) -\sum_^n \alpha_i y_i [(\sum_^n \alpha_j y_j x_j)\centerdot x_i+b] +\sum_^n \alpha_i \\ & = -\frac 1 2 \sum_^n \sum_^n \alpha_i \alpha_j y_i y_j (x_i \centerdot x_j)+\sum_^n \alpha_i \tag \end

通過求對偶問題的解\alpha^*得到原始問題的解w^*與b^*.

分類演算法SVM(支援向量機

支援向量機 support vector machine svm 的主要思想是 建立乙個最優決策超平面,使得該平面兩側距離該平面最近的兩類樣本之間的距離最大化,從而對分類問題提供良好的泛化能力。對於乙個多維的樣本集,系統隨機產生乙個超平面並不斷移動,對樣本進行分類,直到訓練樣本中屬於不同類別的樣本點...

支援向量機 線性分類SVM

模型原型 sklearn.svm.linearsvc penalty l2 loss squared hinge dual true,tol 0.0001,c 1.0,multi class ovr fit intercept true,intercept scaling 1,class weigh...

分類演算法之支援向量機(SVM)

一 概念 支援向量機是一類按監督學習方式對資料進行二元分類的廣義線性分類器,如果進行修改之後也是可以用於多類別問題的分類。支援向量機可以分為線性和非線性兩大類。其主要思想為找到空間中的乙個更夠將所有資料樣本劃開的超平面,並且使得樣本集中所有資料到這個超平面的距離最短。其決策邊界是對學習樣本求解的最大...