當前位置:
首頁 > 最新 > SVR回歸分析簡明教程

SVR回歸分析簡明教程

關於使用SVM進行回歸分析的介紹很少,在這裡,我們討論一下SVR的理論知識,並對該方法有一個簡明的理解。

SVR簡單介紹

SVR全稱是support vector regression,是SVM(支持向量機support vector machine)對回歸問題的一種運用。所以在介紹SVR之前,我們先簡單的來了解一下什麼是SVM。

SVM

SVM與logistic分類器類似,也是一種二類分類模型,其基本模型定義為特徵空間上的間隔最大的線性分類器,其學習策略便是間隔最大化,最終可轉化為一個凸二次規劃問題的求解。

對於下面一個數據集,有兩類分別使用×和來表示。那麼我們想要找到一條曲線來區分這兩類。可想而知,這樣的曲線存在無數條,如何找到那一條最優的曲線呢?那就是要找到間隔(Gap)最大的那一條曲線,然後我們就可以根據這條曲線來分類了。而這條曲線,我們稱為超平面。圖中加粗的×與,我們則稱這些向量為支持向量。

而實際上,我們很少會遇到上面的情況,能直接使用一條直線將數據分類,更多的時候,數據無法通過直線來分類。比如下面這種情況:

當然了,這都不是事,既然在二維上該數據無法使用線性分類,那我們就將數據映射到更高維上,在高維上構造超平面,從而完成分類。

這就是為什麼將上面的直線稱為超平面。

所以對於非線性的模型,我們需要:

看似很簡單,但是我們在映射時,就會發現當變數增多時,映射到高維空間的維度是呈指數增長的,計算起來十分困難,這時候就需要核函數(kernel function)了。核函數也是將特徵從低維到高維進行轉換,但是它是先在低維上進行計算,實際的分類效果表現在高維上。這樣,我們就避免了在高維上複雜的計算,仍得到相同的結果。

一些常用的核函數:

好了,SVM就簡單介紹到這裡。更多理論的推導或者其他更深的理論,請自行查閱!

接下來,我們來看看SVR又是怎麼回事。

我們知道,最簡單的線性回歸模型是要找出一條曲線使得殘差最小。同樣的,SVR也是要找出一個超平面,使得所有數據到這個超平面的距離最小。

前面說了,SVR是SVM的一種運用,基本的思路是一致,除了一些細微的區別。使用SVR作回歸分析,與SVM一樣,我們需要找到一個超平面,不同的是:在SVM中我們要找出一個間隔(gap)最大的超平面,而在SVR,我們定義一個ε,如上圖所示,定義虛線內區域的數據點的殘差為0,而虛線區域外的數據點(支持向量)到虛線的邊界的距離為殘差(ζ)。與線性模型類似,我們希望這些殘差(ζ)最小。所以大致上來說,SVR就是要找出一個最佳的條狀區域(2ε寬度),再對區域外的點進行回歸。

對於非線性的模型,與SVM一樣使用核函數(kernel function)映射到特徵空間,然後再進行回歸。

R語言實現

好吧,講了這麼多,我們使用R來實操一下。有如下的場景:公司HR最近需要招聘一個較高職位的崗位,面試者提出年薪160K。對於面試者提出的要求,HR無法確定是否面試者的要求過高,正好HR手上有一份各級別崗位的年薪數據。

我們通過這份數據來預測面試者的要求是否合理。

我們來看看數據:

該數據集包含了三個欄位:

很明顯,position這個變數在這裡我們不需要,我們根據level來預測salary。

散點圖

首先,我們來看看數據的分布情況。

顯然,數據分布看起來就是非線性。直覺上,salary呈指數上漲。當然,我們可以使用多項式回歸模型來擬合,但在這裡,我們使用SVR來建立模型。

SVR模型

在R中,建立SVR模型也很簡單。首先,我們載入e1071包,該包提供了一個svm()函數。

與lm()函數類似,第一個參數是模型的表達式,type參數選擇「eps-regression」,即上面介紹的SVR回歸分析,kernel參數指定核函數,「radial」即為高斯核。

模型建好了,我們繪製出來看看。

好了,我們的SVR模型看起來擬合得還不錯,不過最後一個觀測遠遠大於預測值,我們可以調整模型各種參數來使曲線擬合。但是在這裡,我們就暫且將這個觀測值當做是異常值來處理。

接下來,我們要完成一開始的目的,我們假設面試者面試的崗位級別為6.5,沒錯,我隨便取的值。我們來看看預測值是多少。

我們的SVR模型預測該面試者的崗位年薪約177K,很好,比面試者提的要求接近,那麼可以跟HR說,該面試者的要求是合理的。在符合條件的情況下,可以錄取該面試者。

總結

我們簡單地了解了什麼是SVM,通過SVM我們引出了SVR,簡單地了解SVR進行回歸分析的原理,接著通過一個實際場景(數據為假的),使用R語言建立了一個SVR模型,當然我們並未對模型進行優化。然後我們對模型的回歸曲線進行了可視化,發現模型在我們上面例子中是符合我們的要求的,最後根據模型預測出了結果。

參考:

1、支持向量機通俗導論(理解SVM的三層境界):http://blog.csdn.net/v_july_v/article/details/7624837

2、Support Vector Machine - Regression (SVR):

3、Support Vector Machine Regression:


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 全球大搜羅 的精彩文章:

我們騎車去了-德國見聞之三
新的一年,應以這樣的姿勢迎接愛的結晶

TAG:全球大搜羅 |