盧超猛,馬澤眾,韓陽,郭小強
(1. 華北理工大學 理學院 唐山市工程計算重點實驗室,河北 唐山 063210;2. 華北理工大學 學科建設(shè)處,河北 唐山 063210)
支持向量回歸(Support Vector Regression, SVR)是支持向量機(Support Vector Machine, SVM)在回歸領(lǐng)域的應(yīng)用,分類和回歸是SVM主要解決的兩類問題。其中支持向量分類( Support Vector Classification, SVC)在國外的研究已經(jīng)趨近成熟[1],而SVR還有很大的發(fā)展空間,國內(nèi)對于SVM的研究起步較晚,目前還在發(fā)展中[2-3]。
數(shù)據(jù)處理是數(shù)據(jù)挖掘的重要一步,海量的原始數(shù)據(jù)中存在著大量不完整(有缺失值)、不一致、有異常的數(shù),嚴重影響到數(shù)據(jù)挖掘建模的執(zhí)行效率,甚至可能導致挖掘結(jié)果的偏差,所以進行數(shù)據(jù)清洗就顯得非常重要。統(tǒng)計發(fā)現(xiàn)[4],在數(shù)據(jù)挖掘的過程中,數(shù)據(jù)預處理工作量占到了整個過程的60%。房價預測在社會、經(jīng)濟方面有著重要的作用。通過對房價的分析預測,可以為政府的宏觀控制、企業(yè)戰(zhàn)略制定以及個人的需求等方面帶來巨大的價值[5-6]。
針對已經(jīng)做過部分預處理的房價數(shù)據(jù)集,通過分析數(shù)據(jù)的特性,對數(shù)據(jù)分別做了重復值處理、異常值處理以及使用主成分分析(PCA)進行數(shù)據(jù)降維[7]。該項研究主要采用了支持向量回歸算法進行數(shù)據(jù)的分析,為了保證分析結(jié)果的可行性以及直觀性,分別選取了普通線性回歸算法、貝葉斯嶺回歸算法和梯度增強回歸算法作為對比算法。對于訓練后的模型,需要對其進行評估和測試。選取均方誤差(MSE)、平均絕對誤差(MAE)、絕對系數(shù)(R2)、差異解釋得分(EV)對模型進行評估。選擇了均方根誤差(RMSE)、MAE、平均絕對百分比誤差(MAPE)、EV對模型的應(yīng)用效果進行評估[8-10]。
通過實驗來分析SVR算法在房價數(shù)據(jù)中回歸分析的表現(xiàn),同時也需要選取對比算法進行對比實驗。在選取對比算法的時候,首先需要選取比較經(jīng)典的多維度情況下的普通線性回歸算法,然后又選取了較為成熟的貝葉斯嶺回歸算法作為進一步對比,最后選取了相對較新的梯度增強回歸作為對比。以期得出全面可靠的研究結(jié)論。下面是幾種算法的原理概述:
(1)普通線性回歸
隨機y與x1,x2,…,xk的線性回歸模型為:
y=β0+β1x1+β2x2+,…,+βkxk+ε
(1)
其中β0,β1,β2,…,βk是k+1個位置參數(shù),β0稱為回歸常數(shù)β1,β2,…,βk稱為回歸系數(shù)。y稱為被解釋變量,x1,x2,…,xk是k個精確可控制的一般變量,稱為解釋變量。
(2)貝葉斯嶺回歸
嶺回歸估計公式:
A(k)=(XTX+kI)-1XTY
(2)
其中,k稱為嶺參數(shù),I是與樣本維度相同的單位矩陣。由于假設(shè)X已經(jīng)標準化,那么XTX就是自變量樣本的相關(guān)陣。如果Y也經(jīng)過標準化,那么計算的結(jié)果就是標準化后的嶺回歸估計。當k=0時,嶺回歸估計A(0)就是普通最小二成法的估計值。
(3)梯度增強回歸
算法思想是,首先使用一個初始值來學習一棵決策樹,葉子處可以得到預測值,以及預測之后的殘差,基于前面決策樹的殘差來學習后面決策樹,直到預測值和真實值的殘差為零。最后前面許多棵決策樹預測值的累加即是測試樣本的預測值。主要優(yōu)點有:
a. 可以靈活處理各種類型的數(shù)據(jù),包括連續(xù)值和離散值。
b.相對SVM來說,在相對較少的調(diào)參時間情況下,預測的準備率也可以比較高。
c. 使用一些健壯的損失函數(shù),對異常值的魯棒性非常強。比如Huber損失函數(shù)和Quantile損失函數(shù)。
GBDT的主要缺點是由于弱學習器之間存在依賴關(guān)系,難以并行訓練數(shù)據(jù)。不過可以通過自采樣的SGBT來達到部分并行。
(4)支持向量回歸
SVM是1995年基于統(tǒng)計學習的理論基礎(chǔ)發(fā)展而來的一種通用的新的學習方法,解決了第二代神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)選擇和局部最小值(過擬合、欠擬合)等問題。以統(tǒng)計學習為理論基礎(chǔ)的支持向量機現(xiàn)被應(yīng)用于機器學習的各個領(lǐng)域,稱為最通用的萬能分類器。
支持向量機是結(jié)構(gòu)最優(yōu)風險理論的一個算法實現(xiàn)。該算法涉及的主要步驟及數(shù)學理論有:
a. 最大間隔超平面的計算;b.拉格朗日乘子;c. KTT條件與對偶變換;d. 高維映射;e. 核函數(shù)與軟間隔。
通過實現(xiàn)以上步驟及數(shù)學原理,使線性分類器可以應(yīng)用到非線性的數(shù)據(jù)集中。
介紹了普通線性回歸、貝葉斯嶺回歸、梯度增強回歸等作為對比的算法以及該研究中所使用的支持向量回歸算法的原理。根據(jù)其原理,選取數(shù)據(jù)集后,對數(shù)據(jù)集進行下一步的回歸分析。
研究所采用的數(shù)據(jù)來自經(jīng)典的波士頓房價數(shù)據(jù)集。然后根據(jù)數(shù)據(jù)集的數(shù)據(jù)采取了以下數(shù)據(jù)處理方法。
(1)重復值處理
在獲取數(shù)據(jù)的時候經(jīng)常會有一些重復的數(shù)據(jù),而重復的數(shù)據(jù)會對統(tǒng)計結(jié)果產(chǎn)生影響,也會誤導決策人員的決策。使用python中已經(jīng)編寫好的duplicated函數(shù),其會對所有列進行對比,如果某兩行每一列的值都一樣時會標記為重復值。
(2)異常值處理
Z=(X-μ)/σ
(3)
其中:μ為總體平均值,X-μ為離均差,σ表示標準差。z的絕對值表示在標準差范圍內(nèi)的原始分數(shù)與總體均值之間的距離。判斷Z-score得分是否大于2.2(此處2.2代表一個經(jīng)驗值),如果是則是True,否則為False。將判定結(jié)果為true的數(shù)據(jù)行直接刪除。
(3)主成分分析(PCA)降維處理
將數(shù)據(jù)的自變量由13維降至9維,PCA降維的過程分為以下幾步:
a. 將數(shù)據(jù)集輸入模型;b. 對數(shù)據(jù)集進行轉(zhuǎn)換映射;c. 獲得轉(zhuǎn)換后的所有成分;d. 獲得各成分的方差;e. 獲得各成分的方差占比;f. 取方差最大的前9項。
對預測模型進行性能評估是至關(guān)重要的,一般是從模型的準確度和訓練時間等方面衡量。對于不同的模型選擇合適且有效的誤差分析方法均有不同。該研究采用常用的均方根誤差、平均絕對誤差和平均百分比誤差3項指標評價模型的性能。
(1)均方誤差(Mean Square Error,MSE)
(4)
范圍[0,+∞),當預測值與真實值完全吻合時等于0,即完美模型;誤差越大,該值越大。
(2)平均絕對誤差(Mean Absolute Error,MAE)
(5)
范圍[0,+∞),當預測值與真實值完全吻合時等于0,即完美模型;誤差越大,該值越大。
(3)均方根誤差(Root Mean Square Error,RMSE)
(6)
式子,也稱為標準誤差,表示誤差的平方的期望值,能夠反映一個數(shù)據(jù)集的離散程度。n為模型測量的次數(shù)。
(4)平均絕對百分比誤差( Mean Absolute Percentage Error,MAPE)
(7)
范圍[0,+∞),MAPE 為0%表示完美模型,MAPE 大于 100 %則表示劣質(zhì)模型。從公式來看,MAPE跟MAE具有相似性,差別主要在分母的位置。當真實值有數(shù)據(jù)等于0時,存在分母0除問題,該公式不可用。
(5)絕對系數(shù)(R-Square,R2)
(8)
越接近1,效果越好。R2的含義,是從最小二乘(就是2次方差)的角度出發(fā),表示實際y值的方差有多大比重被預測y值解釋了。
(6)差異解釋得分(Explained Variance score,EV)
(9)
當殘差的均值為0時,它與R2是一樣的。
針對采用的波士頓房價數(shù)據(jù)集,首先完成了數(shù)據(jù)的預處理步驟。然后通過分析對比回歸算法的原理和理論,確定了該數(shù)據(jù)集應(yīng)用到選取的回歸算法上的過程以及方法。該研究對于模型評估的部分理論也進行了分析與闡述。將數(shù)據(jù)集載入算法中構(gòu)建模型,隨后應(yīng)用該模型對預留的測試數(shù)據(jù)進行測試評估,進而得出其回歸分析的效果以及模型的各項表現(xiàn)。
經(jīng)過重復值、異常值處理以及PCA降維操作,得出可導入算法的數(shù)據(jù)。在進行回歸預測分析時,通常需要將已知的數(shù)據(jù)集分為訓練集和測試集。訓練集用于模型的訓練以及生成,而測試集則用于測試已訓練好的模型的真實預測效果,從而得出其預測的準確率。
圖1為SVR模型與訓練數(shù)據(jù)的擬合圖,其中虛線為原始訓練集,實線為利用訓練集訓練出的SVR模型對訓練集的各個數(shù)據(jù)的預測結(jié)果。

圖1 SVR模型與訓練數(shù)據(jù)的擬合圖
由圖1可知,SVR算法的回歸分析具有一定的效果,但是僅僅通過觀察圖示無法得出準確結(jié)論。因此,需要采用模型評估算法對模型進行評估。表1即為模型評估的誤差分析詳情,采用了MSE、MAE、EV、R24種評估方法分別對模型的訓練效果進行評估。

表1 模型評估誤差分析表
通過表1可以看出,效果較好的模型為梯度增強回歸。在用模型對訓練數(shù)據(jù)進行擬合時,支持向量回歸的效果略差。而以梯度增強為代表的其他回歸算法,由于其在訓練模型時,會對錯誤進行多次學習,因此對訓練數(shù)據(jù)的預測效果較好。
然而真正能夠體現(xiàn)其回歸預測效果的是其對未知數(shù)據(jù)的預測,也即圖2中模型對測試數(shù)據(jù)集進行預測時的擬合對比圖。圖2中點狀數(shù)據(jù)即為測試集的原始數(shù)據(jù)值。其他數(shù)據(jù)線即為各個模型的預測結(jié)果值。

圖2 各個模型與測試數(shù)據(jù)的擬合對比圖
由圖2可以較為直觀地看出,作為本實驗的重點研究對象的SVR模型表現(xiàn)較為良好,相較于其他回歸算法,其表現(xiàn)出更好的擬合效果。為了更加清晰地單獨觀察SVR模型,圖3為SVR模型與原始測試集的單獨對比圖。

圖3 SVR模型與測試數(shù)據(jù)的擬合圖
通過對圖3的進一步觀察,可以發(fā)現(xiàn)實驗SVR模型對測試集進行預測時,其預測值的趨勢與原始值基本保持一致,誤差相對較小。同樣除了圖像的觀察,也需要用真實的數(shù)據(jù)進一步說明。表2即為使用MAE、RMSE、MAPE 3種模型評估算法分別對4種回歸模型的預測效果進行評估。

表2 模型測試誤差分析表
通過表2的數(shù)據(jù)分析,SVR模型在MAE、RMSE、MAPE這3項指標中均為最小值,根據(jù)其原理可知,其預測效果在4個模型中為最好。而梯度增強回歸對未知數(shù)據(jù)的預測效果表現(xiàn)較差,不適用于房價的預測中。圖4為不同模型的EV得分情況。

圖4 模型測試的EV得分對比圖
由圖4可知,在波士頓房價數(shù)據(jù)的預測中,SVR算法訓練出的模型準確率達到50%以上,其次為貝葉斯嶺回歸,普通線性回歸也表現(xiàn)出較好的效果。而梯度增強回歸在對變化性比較隨機的房價數(shù)據(jù)進行預測時,其效果表現(xiàn)一般。
SVR算法訓練出的模型,對于未知房價數(shù)據(jù)有較好的預測效果。其預測效果已經(jīng)達到了50%以上,在實際情況中具有一定的參考價值。該預測模型對于房地產(chǎn)行業(yè)以及國家相關(guān)部門均具有一定指導意義。