1. 程式人生 > >SVM支援向量機分類模型SVC理論+python sklean.svm實踐

SVM支援向量機分類模型SVC理論+python sklean.svm實踐

支援向量機是啥

有一次公司專案上的同事一起吃飯(面前是一鍋炒土雞),提到了支援向量機,學文的同事就問支援向量機是什麼,另一個數學物理大牛想了一下,然後說,一種雞。。。

確實很難一句話解釋清楚這隻雞。。。support vector machine從字面意思來說應該是依靠support vector來劃分資料(其實也能迴歸啦。。)的機器學習模型。它是一個凸優化問題。

SVM的核心將資料的特徵投射到高維,然後找到超平面,分割不同類別的資料點,而且要使分離的程度越大越好,至於為什麼叫支援向量機,是因為每個類別都會有一些資料點作為支撐向量,這些支撐向量決定了最後分割的超平面。
@線性可分示意圖|300x200

這個圖裡的圈圈就是兩邊的支撐向量。

線性可分支援向量機

我們先講最簡單的情況,也就是線性可分的平面二分類問題。
支援向量機的目標是,找到一條分界線,把兩類資料分開。但是這樣的線可能有很多。
@多條線分割 | 200x100

像上圖。並不是每條線都是一個很好的分割線,如果緊貼著紅點,那麼線的另一頭會立馬被判為藍色,這樣對紅點就很不合適了。所以SVM的目標不光是要找到這樣一條分割線,而是要找到一條能最公平合理的分割線,讓兩類資料中最邊緣的資料點距離分割線越遠越好,這樣這個分類器的泛化能力才會更強。於是乎支撐向量就被引入了。

分割線,分類表示式

這裡寫圖片描述

直線的一般表示式:ax+by+c=0
對於多維,可以直接表達成:wTx+b=0,在多維情況下,它是個超平面。
對於直線上方的類別有w

Tx+b>0
對於直線下方的類別有wTx+b<0

距離表示式

有了直線,我們需要定義資料點到分割平面的距離,這裡用的是點到直線的距離公式。

distance=|Ax0+By0+C|A2+B2

- 如果我們去掉絕對值,就可以根據大於零還是小於零來判斷資料點在直線上方還是下方。
- 更進一步,我們可以把它表示成如下形式:
distance=wTx0+b||w||

最大分割距離max margin

然後我們再來看一開始的那張圖:
這裡寫圖片描述

回顧一下支援向量機是要幹啥來著,是要找到一條把兩類資料分得很開的割平面對不對,這需要我們找到兩類資料最邊緣的資料點(支撐向量),然後畫出來兩條平行的切面,兩邊支撐向量距離的垂直平分線就是最終的切割平面。

支援向量機的目標是讓最邊緣的點之間的距離越大越好。即ρ最大

這是我們的終極目標,敲黑板!

目標函式表示式推導

接下來,我們來分析怎麼把這個目標寫成數學表示式~
很簡單,只需要表示support vector到分割線的距離,並且讓該距離最大不就行了。

ρ=2r=2|wTxsupport+b|||w||=2ysupport(wTxsupport+b)||w||

最右邊的等式成立是因為,y的sign和(直線上方的點記為1,直線下方的點記為-1)括號裡的一直,保證了分子大於零。

直線上方的點 yi=1wTxi+bρ2

直線下方的點 yi=1wTxi+bρ2

等價於:yi(wTxi+b)ρ2

那麼新的問題來了,我們如何知道哪個點是support vector?
答案就是離分割線最近的點對不對。
所以,目標函式是一個極小極大問題。。。

argmaxw,b{2||w||miniyi(wTxi+b)}.

之前我們有 yi(wTxi+b)ρ2,我們總可以通過縮放w和b,使該不等式右邊劃歸到1。如此,就可以簡化目標函式。

argmaxw,b2||w||s.t.yi(wTxi+b)1fori=1,2,3.....n

優化問題求解

我們把問題改為求它的對偶問題

argminw,b||w||22s.t.yi(wTx

相關推薦

SVM支援向量分類模型SVC理論+python sklean.svm實踐

支援向量機是啥 有一次公司專案上的同事一起吃飯(面前是一鍋炒土雞),提到了支援向量機,學文的同事就問支援向量機是什麼,另一個數學物理大牛想了一下,然後說,一種雞。。。 確實很難一句話解釋清楚這隻雞。。。support vector machine從字面意思來

SVM支援向量系列理論(七) 線性支援向量與L2正則化 Platt模型

7.1 軟間隔SVM等價於最小化L2正則的合頁損失 上一篇 說到, ξi ξ i \xi_i 表示偏離邊界的度量,若樣本點

SVM支援向量系列理論(六) SVM過擬合的原因和SVM模型選擇

6.1 SVM 過擬合的原因 實際我們應用的SVM模型都是核函式+軟間隔的支援向量機,那麼,有以下原因導致SVM過擬合: 選擇的核函式過於powerful,比如多項式核中的Q設定的次數過高 要求的間隔過大,即在軟間隔支援向量機中C的引數過大時,表示比較重視間隔,堅持要資

SVM支援向量系列理論(二) 線性可分SVM模型的對偶問題

2.1 對偶問題 2.1.1 原始問題的轉換 2.2.2 強對偶性和弱對偶性 2.3.3 SVM模型的對偶問題形式求解

SVM支援向量系列理論(九) 核嶺迴歸

1. 嶺迴歸問題 嶺迴歸就是使用了L2正則化的線性迴歸模型。當碰到資料有多重共線性時(自變良量存在高相關性),我們就會用到嶺迴歸。 嶺迴歸模型的優化策略為: minw    1N∑i(yi−w⋅zi)2+λNwTw&nbs

SVM支援向量系列理論(八) 核邏輯迴歸

kernel 邏輯迴歸(KRL)就是使用Representer Theory在L2正則的邏輯迴歸模型中應用核技巧。 1. Representer Theoem Representer Theoem是說,對於任何一個L2正則化的線性模型,其最優的權重向量 w∗

SVM支援向量系列理論(四) 軟間隔支援向量

4.1 軟間隔SVM的經典問題 4.2 軟間隔SVM的對偶問題 4.2.1 軟間隔SVM的對偶問題學習演算法 4.3 軟間

SVM支援向量系列理論(五)SVM中幾種核函式的對比

核函式可以代表輸入特徵之間特殊的相似性。 5.1 線性核 形式: K(x,x′)=xTx′ K ( x ,

SVM支援向量系列理論(三) 非線性支援向量與核函式技巧

3.1 核技巧解決非線性SVM 3.1.1 非線性SVM解決思路 3.1.2 核技巧下SVM 3.2 Mercer核

SVM支援向量原理(二) 線性支援向量的軟間隔最大化模型

在支援向量機原理(一) 線性支援向量機中,我們對線性可分SVM的模型和損失函式優化做了總結。最後我們提到了有時候不能線性可分的原因是線性資料集裡面多了少量的異常點,由於這些異常點導致了資料集不能線性可分,本篇就對線性支援向量機如何處理這些異常點的原理方法做一個總結。 1

斯坦福CS229機器學習筆記-Lecture6-多元伯努利事件模型+SVM支援向量

作者:teeyohuang本文系原創,供交流學習使用,轉載請註明出處,謝謝宣告:此係列博文根據斯坦福CS229課程,吳恩達主講 所寫,為本人自學筆記,寫成部落格分享出來          博文中部分圖片和公式都來源於CS229官方notes。          CS229的視

[機器學習]svm支援向量介紹

1 什麼是支援向量機 支援向量機是一種分類器,之所以稱為 機 是因為它會產生一個二值決策結果,即它是一個決策機。 ​​​Support Vector Machine, 一個普通的SVM就是一條直線罷了,用來完美劃分linearly separable的兩類。但這又不是一條

SVM-tutorial】SVM-支援向量綜述

原文地址:https://www.svm-tutorial.com/ (這篇文章是翻譯 Alexandre KOWALCZYK 的SVM tutorial ,這篇tutorial 寫的很詳細,沒有很好的數學背景的同學也可以看的懂,作者細心的從最基礎的知識講起,帶領我們一步步的認識這個複雜

【IM】關於支援向量分類的理解

支援向量機分類的理解核心就是核方法以及二次規劃最優求解。 SVM相關博文: https://blog.csdn.net/fjssharpsword/article/details/79965283 https://blog.csdn.net/fjssharpsword/article

機器學習實戰——SVM支援向量 實現記錄

問題:TypeError: data type not understood alphas = mat(zeros(m,1)) 原因是zeros(())格式不對,更改後: alphas = mat(zeros((m,1))) 問題:關於IDLE中換行,回車前面出現很多空格的情況

SVM(支援向量)

Basically, the support vector machine is a binary learning machine with some highly elegant properties. Given a training sample, the support vector machi

機器學習 (十一) SVM-支援向量

春夜喜雨 好雨知時節,當春乃發生。 隨風潛入夜,潤物細無聲。 野徑雲俱黑,江船火獨明。 曉看紅溼處,花重錦官城。 前言         週末很多城市下開了雨,下雨中也不乏忙忙碌碌的人們,有的天不亮已經忙碌匆

機器學習演算法——SVM(支援向量)

文章目錄 1. SVM簡介 2. SVM的一些概念 2.1 函式間隔與幾何間隔 2.2 支援向量 3. SVM模型目標函式與優化 3.1 SVM模型目標函式的推導(線性可分)

05 SVM - 支援向量 - 概念、線性可分

一、SVM概念 支援向量機(Support Vector Machine, SVM)本身是一個__二元分類演算法__,是對感知器演算法模型的一種擴充套件,現在的SVM演算法支援__線性分類__和__非線性分類__的分類應用,並且也能夠直接將SVM應用於__迴歸應用__中,同時通過OvR或者OvO

機器學習7:SVM(支援向量)

支援向量機 優化目標 大間距分類器 數學原理 核函式一 核函式二 使用 優化目標 對於邏輯迴歸的假設函式而言,在y=1的情況下,我們希望假設函式約等於1,且z遠大於0;在y=0的情況下,我們希望假設函式約等於