1. 程式人生 > >SVM核技巧的經典解釋

SVM核技巧的經典解釋

本文是“支援向量機系列”的第三篇,參見本系列的其他文章

前面我們介紹了線性情況下的支援向量機,它通過尋找一個線性的超平面來達到對資料進行分類的目的。不過,由於是線性方法,所以對非線性的資料就沒有辦法處理了。例如圖中的兩類資料,分別分佈為兩個圓圈的形狀,不論是任何高階的分類器,只要它是線性的,就沒法處理,SVM 也不行。因為這樣的資料本身就是線性不可分的。

對於這個資料集,我可以悄悄透露一下:我生成它的時候就是用兩個半徑不同的圓圈加上了少量的噪音得到的,所以,一個理想的分界應該是一個“圓圈”而不是一條線(超平面)。如果用 來表示這個二維平面的兩個座標的話,我們知道一條二次曲線(圓圈是二次曲線的一種特殊情況)的方程可以寫作這樣的形式:

注意上面的形式,如果我們構造另外一個五維的空間,其中五個座標的值分別為 , , , , ,那麼顯然,上面的方程在新的座標系下可以寫作:

關於新的座標 ,這正是一個 hyper plane 的方程!也就是說,如果我們做一個對映 ,將 按照上面的規則對映為 ,那麼在新的空間中原來的資料將變成線性可分的,從而使用之前我們推導的線性分類演算法就可以進行處理了。這正是 Kernel 方法處理非線性問題的基本思想。

再進一步描述 Kernel 的細節之前,不妨再來看看這個例子對映過後的直觀例子。當然,我沒有辦法把 5 維空間畫出來,不過由於我這裡生成資料的時候就是用了特殊的情形,具體來說,我這裡的超平面實際的方程是這個樣子(圓心在

軸上的一個正圓):

因此我只需要把它對映到 , , 這樣一個三維空間中即可,下圖(這是一個 gif 動畫)即是對映之後的結果,將座標軸經過適當的旋轉,就可以很明顯地看出,資料是可以通過一個平面來分開的:

現在讓我們再回到 SVM 的情形,假設原始的資料時非線性的,我們通過一個對映 將其對映到一個高維空間中,資料變得線性可分了,這個時候,我們就可以使用原來的推導來進行計算,只是所有的推導現在是在新的空間,而不是原始空間中進行。當然,推導過程也並不是可以簡單地直接類比的,例如,原本我們要求超平面的法向量 ,但是如果對映之後得到的新空間的維度是無窮維的(確實會出現這樣的情況,比如後面會提到的 Gaussian Kernel ),要表示一個無窮維的向量描述起來就比較麻煩。於是我們不妨先忽略過這些細節,直接從最終的結論來分析,回憶一下,我們上一次得到的最終的分類函式是這樣的:

相關推薦

SVM技巧經典解釋

本文是“支援向量機系列”的第三篇,參見本系列的其他文章。 前面我們介紹了線性情況下的支援向量機,它通過尋找一個線性的超平面來達到對資料進行分類的目的。不過,由於是線性方法,所以對非線性的資料就沒有辦法處理了。例如圖中的兩類資料,分別分佈為兩個圓圈的形狀,不論是任何高階的分類器,只要它是線性的,就沒法處理

SVM筆記系列之六》支援向量機中的技巧那些事兒

《SVM筆記系列之六》支援向量機中的核技巧那些事兒 前言 我們在前文[1-5]中介紹了線性支援向量機的原理和推導,涉及到了軟和硬的線性支援向量機,還有相關的廣義拉格朗日乘數法和KKT條件等。然而,光靠著前面介紹的這些內容,只能夠對近似於線性可分的資料進行分割,而不能對非線性的資料

SVM——傳說中的技巧

SVM說白了,就分三種應用方式:    (1)線性可分(硬間隔)    (2)線性不可分,但大致可分(軟間隔)    (3)線性不可分,最優超平面誤差極大,如異或問題區分{(0,0),(1,1)}和{(0,1),(1,0)}這兩類,超平面無最優解,至少都有50%的誤差,於是就

JS高級程序設計中對“私有作用域”的經典解釋

js高級程序設計 mef size 替換 沒有 color 包含 函數 16px JavaScript從來不會告訴你是否多次聲明了同一個變量;遇到這種情況,它只會對後續的聲明視而不 見(不過,它會執行後續聲明中的變量初始化)。 匿名函數可以用來模仿塊級作用域並避免這個問題。

16 SVM - 程式碼案例三 - 不同SVM函式效果比較

SVM的章節已經講完,具體內容請參考:《01 SVM - 大綱》 《14 SVM - 程式碼案例一 - 鳶尾花資料SVM分類》《15 SVM - 程式碼案例二 - 鳶尾花資料不同分類器效果比較》 常規操作: 1、標頭檔案引入SVM相關的包2、防止中文亂碼3、讀取資料4、資料分割訓練集和測試集 6:4

關於HTTP Connect指令的經典解釋

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!                CONNECT是標準技術,不是什麼黑客行為。 SSL就可以利用CONNECT連線,CONNECT與GET等的不同之處就在於代理伺服器對CONNECT連線處理為建

svm函式的理解和選擇

特徵空間的隱式對映:核函式     咱們首先給出核函式的來頭:在上文中,我們已經瞭解到了SVM處理線性可分的情況,而對於非線性的情況,SVM 的處理方法是選擇一個核函式 κ(⋅,⋅) ,通過將資料對映到高維空間,來解決在原始空間中線性不可分的問題。     此外,因為訓練樣

多執行緒-----經典解釋監視器和物件鎖

在JVM的規範中,有這麼一些話:      “在JVM中,每個物件和類在邏輯上都是和一個監視器相關聯的”        “為了實現監視器的排他性監視能力,JVM為每一個物件和類都關聯一個鎖”      “鎖住了一個物件,就是獲得物件相關聯的監視器”      從這些話,

【機器學習】SVM函式的計算

J=∑iαi−12∑i∑jαiαjdidjk(xi)Tk(xj)=∑iαi−12∑i∑jαiαjdidjK(xi,xj)subjectto∑αidi=0,0≤αi≤C 在優化好αi拉格朗日量後,我們得

【模式識別】SVM函式

以下是幾種常用的核函式表示:線性核(Linear Kernel)多項式核(Polynomial Kernel)徑向基核函式(Radial Basis Function)也叫高斯核(Gaussian Kernel),因為可以看成如下核函式的領一個種形式:徑向基函式是指取值僅僅依

SVM函式的分類

1、經常使用的核函式 核函式的定義並不困難,根據泛函的有關理論,只要一種函式 K( xi, xj) 滿足Mercer條件,它就對應某一變換空間的內積.對於判斷哪些函式是核函式到目前為止也取得了重要的突破,得到Mercer定理和以下常用的核函式型別:(1)線性核函式 K( x, xi) = x ⋅ xi(2)多

經典解釋監視器和物件鎖

cathy97問: 在JVM的規範中,有這麼一些話:     “在JVM中,每個物件和類在邏輯上都是和一個監視器相關聯的”       “為了實現監視器的排他性監視能力,JVM為每一個物件和類都關聯一個鎖”     “鎖住了一個物件,就是獲得物件相關聯的監視器”      

支援向量機SVM函式的選擇(七)

支援向量機是建立在統計學習理論基礎之上的新一代機器學習演算法,支援向量機的優勢主要體現在解決線性不可分問題,它通過引入核函式,巧妙地解決了在高維空間中的內積運算,從而很好地解決了非線性分類問題。要構造出一個具有良好效能的SVM,核函式的選擇是關鍵也是最重要的一步.通常來講

選擇支援向量機(SVM)函式

SVM核函式通常有四種: 1. Linear 2. Polynomial 3. Gaussian (RBF) 4. Sigmoid/Logistic 不知為何,RBF最常用一般情況下,給定隨意的資料集,你不知道該用什麼樣的核函式,通常先用簡單的對映方式,然後再一步步的複雜化。如果資料集是線性可分的,用line

ML—技巧

華電北風吹 天津大學認知計算與應用重點實驗室 日期:2015/11/13 什麼是核? xi,xj∈RN,模型中遇到的關於xi,xj的計算全部是<xi,xj>,若在N維中得不到想要

支援向量機SVM函式分析

核函式描述和分析考慮在”迴歸和梯度下降“中“線性迴歸”中提出的問題,特徵是房子的面積x,這裡的x是實數,結果y是房子的價格。假設我們從樣本點的分佈中看到x和y符合3次曲線,那麼我們希望使用x的三次多項式來逼近這些樣本點。那麼首先需要將特徵x擴充套件到三維,然後尋找特徵和結果之

機器學習實戰-之SVM函式與案例

在現實任務中,原始樣本空間中可能不存在這樣可以將樣本正確分為兩類的超平面,但是我們知道如果原始空間的維數是有限的,也就是說屬性數是有限的,則一定存在一個高維特徵空間能夠將樣本劃分。 事實上,在做任務中,我們並不知道什麼樣的核函式是合適的。但是核函式的選擇卻

常用SVM函式

以下是幾種常用的核函式表示:線性核(Linear Kernel)多項式核(Polynomial Kernel)徑向基核函式(Radial Basis Function)也叫高斯核(Gaussian Kernel),因為可以看成如下核函式的領一個種形式:徑向基函式是指取值僅僅依

Kernel SVM (函式支援向量機)

1. SVM 目標函式及約束條件 SVM 的介紹及數學推導參考:我的CSDN,此處直接跳過,直接給出 SVM 的目標函式和約束條件: minw,b12wTws.t.yn(wTxn+b)≥1,n=1,..N 2. 對偶形式 SVM 目標函式 對偶形

Python機器學習筆記:SVM(2)——SVM函式

  上一節我學習了完整的SVM過程,下面繼續對核函式進行詳細學習,具體的參考連結都在上一篇文章中,SVM四篇筆記連結為: Python機器學習筆記:SVM(1)——SVM概述 Python機器學習筆記:SVM(2)——SVM核函式 Python機器學習筆記:SVM(3)——證明SVM Python機器學習筆記