1. 程式人生 > >機器學習之支援向量機: Support Vector Machines (SVM)

機器學習之支援向量機: Support Vector Machines (SVM)

機器學習之支援向量機: Support Vector Machines (SVM)

歡迎訪問人工智慧研究網 課程中心

  • 理解支援向量機(Understanding SVM)
  • 使用支援向量機(Using SVM)
  • 使用高斯核(Gaussian Kernel)訓練SVM分類器
  • 使用自定義核(Custom Kernel)訓練SVM分類器
  • 訓練和交叉驗證SVM分類器

理解支援向量機(Understanding SVM)

所謂支援向量是指那些在間隔區邊緣的訓練樣本點。 這裡的“機(machine,機器)”實際上是一個演算法。在機器學習領域,常把一些演算法看做是一個機器。支援向量機方法是建立在統計學習理論的VC維理論和結構風險最小原理基礎上的,根據有限的樣本資訊在模型的複雜性(即對特定訓練樣本的學習精度)和學習能力(即無錯誤地識別任意樣本的能力)之間尋求最佳折中,以求獲得最好的推廣能力 。 ——

[ 百度百科 ]

可分性資料(Separable Data)

當待分類的資料只有兩類時,你就可以用SVM進行分類。SVM通過找到最優超平面對資料進行分類。如果資料是可分的,那麼可能有好多個超平面都可以實現分類。但是對SVM來說,最優超平面(best hyper-plane)意味著在兩類之間具有最大邊際間隔(margin)的那個超平面。”Margin”意味著平行於超平面的沒有內部資料點的兩個平板(slab)的最大寬度。支援向量(support vectors) 是那些最靠近分離超平面的資料點; 這些點都分佈在slab的邊界上. 如下圖所示:“+”號表示標籤為1的樣本, and “-”號表示標籤為-1的樣本
支援向量與最優超平面示意圖


數學表述 原問題:
訓練資料是一個d維向量集 xiRd 還有與之對應的類別標籤集合 yi=±1. 那麼超平面公式可以標示為

<w,x>+b=0
其中 wRd是權值向量,<w,x>是內積,b是偏置。
下面的約束優化問題定義了最優分離超平面:
minw,b||w||yi(<w,xi>+b)1,i=1,2,,N
支援向量就是那些滿足邊界條件的資料點xiyi(<w,xi>+b)=1
為了數學處理上的方便,上面的目標函式常被替換成等效的形式:minw,b12<
w,w>
, 這是一個帶約束的二次規劃問題,我們可以用拉格朗日乘數法來求解。我們將正的拉格朗日運算元αi乘以每一個約束條件,然後從目標函式中減去,如下所示:
Lp=12<w,w>i=1N(αi(yi(<w,xi>+b)1))
為了找到Lp(w,b)的駐點,分別對變數wb求偏導數,並令其等於0,我們可以得到如下的方程組:
w0==i=1Nαiyixii=1Nαiyi
得到其最優解(wˆ,bˆ) 後,對新的樣本資料z的分類如下進行:
class(z)=sign(wˆz+bˆ)
因為解決二次規劃問題的對偶問題要更加簡單,所以我們要把原問題重新表述成它的對偶問題。
數學表述 對偶問題:
為了獲得對偶問題,我們將上面的方程組代入Lp就可以得到對偶問題:
LD=i=1Nαi12i=1Nj=1N(αiαjyiyj<xixj>)
現在,我們只需要在αi0的範圍內最大化目標函式LD. 這是一個標準的二次規劃問題,我們可以使用Matlab的優化工具箱來求解。一般來說,在

相關推薦

機器學習支援向量 Support Vector Machines (SVM)

機器學習之支援向量機: Support Vector Machines (SVM) 歡迎訪問人工智慧研究網 課程中心 理解支援向量機(Understanding SVM) 使用支援向量機(Using SVM) 使用高斯核(Gaussian Kern

機器學習支援向量(Support Vector Machines)

支援向量機(Support Vector Machines, SVM)是一種二分類模型,其基本模型是定義在特徵空間上的間隔最大的線性分類器。支援向量機的學習策略就是間隔最大化。 間隔最大化的直觀解釋是:對訓練資料集找到幾何間隔最大的超平面意味著以充分大的卻確信度對訓練資料進

機器學習支援向量SVM Support Vector Machine (五) scikit-learn演算法庫

一、scikit-learn SVM演算法庫概述         scikit-learn中SVM的演算法庫分為兩類,一類是分類演算法庫,包括SVC、 NuSVC和LinearSVC三個類。另一類是迴歸演算法庫,包括SVR、NuSVR和LinearSVR三個類。相關的

機器學習支援向量SVM Support Vector Machine (六) 高斯核調參

        在支援向量機(以下簡稱SVM)的核函式中,高斯核(以下簡稱RBF)是最常用的,理論上 RBF一定不比線性核函式差,但是在實際應用中,卻面臨幾個重要超引數的調優問題。如果調的不好,可能比線性核函式還要差。所以實際應用中,能用線性核函式得到較好效果的都會選擇

機器學習支援向量(四)

引言:   SVM是一種常見的分類器,在很長一段時間起到了統治地位。而目前來講SVM依然是一種非常好用的分類器,在處理少量資料的時候有非常出色的表現。SVM是一個非常常見的分類器,在真正瞭解他的原理之前我們多多少少都有接觸過他。本文將會詳細的介紹SVM的原理、目標以及計算過程和演算法步驟。我們針對線性可分資

[四]機器學習支援向量SVM

4.1 實驗資料 本資料集來源於UCI的Adult資料集,並對其進行處理得到的。資料集下載地址:http://archive.ics.uci.edu/ml/datasets/Adult。本實驗使用LIBSVM包對該資料進行分類。 原始資料集每條資料有14個特徵,分別為age,workc

機器學習實戰-python3】支援向量Support Vecrtor Machines SVM

工具:PythonCharm 書中的程式碼是python2的,而我用的python3,結合實踐過程,這裡會標註實踐時遇到的問題和針對python3的修改。 實踐程式碼和訓練測試資料可以參考這裡 https://github.com/stonycat/ML

機器學習支援向量SVM及程式碼示例

一、線性可分SVM SVM演算法最初是用來處理二分類問題的,是一種有監督學習的分類演算法。 對於線性可分的二分類問題,我們可以找到無窮多個超平面,將兩類樣本進行區分。(超平面:一維中是一個點;二維中是一條線;三維中是一個面……) 在上面的多個超平面中,

機器學習實戰】第6章 支援向量Support Vector Machine / SVM

第6章 支援向量機 <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=default"></script>

機器學習支援向量迴歸(機器學習技法)

核函式山脊迴歸Represent Theorem表達理論就是指如果一個模型是帶有L2正則化的線性模型,那麼它在最佳化的時候的權重引數值W*將能夠用Z空間的資料的線性組合來表示。它的推論就是L2的正則化線性模型能夠核函式化如下圖所示:現在我們的目標就是用核函式的方式去解決迴歸問

機器學習支援向量演算法例項

此例項是利用svm演算法預測乳腺癌腫瘤是良性還是惡性,資料格式如下圖所示:第一列表示編號,2到10列表示資料屬性,第11列表示腫瘤標籤2表示良性4表示惡性。 程式碼如下 from sklearn import svm # x = [[2, 0], [1, 1], [

機器學習支援向量原理和sklearn實踐

1. 場景描述 問題:如何對對下圖的線性可分資料集和線性不可分資料集進行分類? 思路: (1)對線性可分資料集找到最優分割超平面 (2)將線性不可分資料集通過某種方法轉換為線性可分資料集 下面將帶著這兩個問題對支援向量機相關問題進行總結 2. 如何找到最優分割超平面 一般地,當訓練資料集線性可分時,存

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

一、問題引入   支援向量機(SVM,Support Vector Machine)在2012年前還是很牛逼的,但是在12年之後神經網路更牛逼些,但是由於應用場景以及應用演算法的不同,我們還是很有必要了解SVM的,而且在面試的過程中SVM一般都會問到。支援向量機是一個非常經典且高效的分類模型。我們的目標:基

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

五、SVM求解例項   上面其實已經得出最終的表示式了,下面我們會根據一些具體的點來求解α的值。資料:3個點,其中正例 X1(3,3) ,X2(4,3) ,負例X3(1,1) 如下圖所示       我們需要求解下式的極小值       注意約束條件(在這裡不要忘記了yi代表的是資料

神經網路學習筆記-支援向量Support Vector Machine,SVM

基於誤差反向傳播演算法的多層感知器 徑向基函式網路 支援向量機(SupportVector Machine , SVM ) 都是前饋神經網路 ,都用於解決模式分類與非線性對映問題 。 線性可分模

支援向量Support Vector machines

本節主要是觀看Andrew Ng的斯坦福大學系列視訊CS299第6講、第7講等後,加上個人理解,對支援向量機部分做的一個筆記整理。 本文順序是: 綜述各個部分關係 最大間隔分類器 軟、硬間隔分類 核函式 2 最大間隔分類器 首先,我們應該知道求超

吳恩達機器學習13--支援向量(Support Vector Machines)

第13章 支援向量機(Support Vector Machines) 一,優化目標(Optimization objective) SVM也是廣泛的應用於工業界和學術界的監督學習演算法。 類似於logistic的代價函式,SVM的代價函式如圖是斜直線加上平直線

機器學習2-支援向量(Support Vector Machine)

  在機器學習中,支援向量機(SVM,還支援向量網路)是與相關的學習演算法有關的監督學習模型,可以分析資料,識別模式,用於分類和迴歸分析。   介紹   在機器學習中,支援向量機(SVM,還支援向量網路)是與相關的學習演算法有關的監督學習模型,可以分析資料,

[完]機器學習實戰 第六章 支援向量Support Vector Machine)

[參考] 機器學習實戰(Machine Learning in Action) 本章內容 支援向量機(Support Vector Machine)是最好的現成的分類器,“現成”指的是分類器不加修改即可直接使用。基本形式的SVM分類器就可得到低錯

機器學習筆記——支援向量

一,線性可分支援向量機與硬間隔最大化 1.1 間隔與支援向量 在樣本空間中,劃分超平面可通過如下線性方程來描述: 其中,w = (w1;w2;...;wd)為法向量,決定了超平面的方向;b為位移項,決定了超平面與原點之間的距離。 我們將超平面記為(w,b).樣本空間中任意點x到