楊博文+曹布陽
摘要:隨著國民生活水平的提高,人們對(duì)房產(chǎn)的需求不斷增加,對(duì)房價(jià)的關(guān)注度也持續(xù)變高。房價(jià)作為多指標(biāo)影響因子,受到很多條件的影響[2-4][11]。現(xiàn)有房價(jià)預(yù)測(cè)模型多屬于單一預(yù)測(cè)算法,預(yù)測(cè)精度不理想,當(dāng)數(shù)據(jù)噪聲較大時(shí)又容易出現(xiàn)過擬合現(xiàn)象。針對(duì)這些問題,提出基于集成學(xué)習(xí)的房價(jià)預(yù)測(cè)模型。選用預(yù)測(cè)效果較好的Extra Trees,Random Forest,GBDT,XGB算法作為基礎(chǔ)預(yù)測(cè)模型,分別訓(xùn)練并對(duì)四種基礎(chǔ)模型進(jìn)行stacking[1][5]集成,最終得到集成學(xué)習(xí)的房價(jià)預(yù)測(cè)模型。在加州房價(jià)數(shù)據(jù)集上試驗(yàn)表明,本方法相比于單一預(yù)測(cè)模型能夠有效提高預(yù)測(cè)的準(zhǔn)確率及穩(wěn)定性,證實(shí)了本模型的有效性。
關(guān)鍵詞:集成學(xué)習(xí);房價(jià)預(yù)測(cè);極度隨機(jī)樹; 隨機(jī)森林;GBDT;XGB; Stacking
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)29-0191-04
1 概述
房地產(chǎn)不僅是國民經(jīng)濟(jì)的支柱產(chǎn)業(yè),更和民生問題密不可分,隨著房產(chǎn)越炒越熱,人們對(duì)于房價(jià)的關(guān)注度也持續(xù)變高,因此能夠較為精準(zhǔn)地對(duì)房價(jià)進(jìn)行預(yù)測(cè)也變得越來越有意義。房價(jià)作為多指標(biāo)影響因子,不僅受時(shí)間,區(qū)域的影響,房屋年齡、附近地理?xiàng)l件、人文、交通等等因素也同樣會(huì)對(duì)房價(jià)產(chǎn)生不同程度的影響?,F(xiàn)有的預(yù)測(cè)模型多屬于單一預(yù)測(cè)算法預(yù)測(cè),預(yù)測(cè)精度并不理想,如人工神經(jīng)網(wǎng)絡(luò),當(dāng)數(shù)據(jù)量不夠龐大時(shí)預(yù)測(cè)效果得不到保證;而簡(jiǎn)單的集成模型如隨機(jī)森林,當(dāng)噪音較大時(shí)會(huì)出現(xiàn)過擬合,對(duì)于不同級(jí)別的屬性的數(shù)據(jù),級(jí)別劃分較多的屬性也會(huì)對(duì)隨機(jī)森林產(chǎn)生很大的影響。基于以上問題,本研究提出一種基于集成學(xué)習(xí)的房價(jià)預(yù)測(cè)模型,該模型集成了多個(gè)單一集成預(yù)測(cè)模型,包括極度隨機(jī)樹(ET), 隨機(jī)森林(RF), GBDT, XGB。利用集成學(xué)習(xí)方法中的stacking集成方法,首先對(duì)數(shù)據(jù)集進(jìn)行劃分,利用每個(gè)預(yù)測(cè)模型(學(xué)習(xí)器)對(duì)房價(jià)特征進(jìn)行提取并在第一個(gè)訓(xùn)練集分別訓(xùn)練,在第二個(gè)訓(xùn)練集上測(cè)試這幾個(gè)學(xué)習(xí)器,把得到的測(cè)試結(jié)果作為輸入,正確回應(yīng)作為輸出,訓(xùn)練一個(gè)高層學(xué)習(xí)器作為我們最終的預(yù)測(cè)模型。實(shí)驗(yàn)采用加州房價(jià)數(shù)據(jù)進(jìn)行訓(xùn)練與預(yù)測(cè),通過不斷訓(xùn)練和調(diào)參,利用均方誤差對(duì)單一預(yù)測(cè)模型與基于集成學(xué)習(xí)的房價(jià)預(yù)測(cè)模型進(jìn)行誤差對(duì)比分析,實(shí)驗(yàn)結(jié)果較為理想,證明了本研究方法的有效性和可行性。
1.1 相關(guān)技術(shù)及現(xiàn)狀簡(jiǎn)介
本研究主要使用到四種基本預(yù)測(cè)模型,分別是Extra Trees,RF,GBDT,XGB。但現(xiàn)存的這四種較優(yōu)的預(yù)測(cè)模型具有優(yōu)點(diǎn)的同時(shí)也存在著不足:
1.1.1 隨機(jī)森林模型[7]
隨機(jī)森林是以決策樹為基本單元,通過集成學(xué)習(xí)的思想將多棵樹集成的一種算法。
相比于簡(jiǎn)單的決策樹,隨機(jī)森林有以下幾個(gè)優(yōu)點(diǎn):
1) 在當(dāng)前的很多數(shù)據(jù)集上,相比其他算法有很大的優(yōu)勢(shì),表現(xiàn)良好;
2) 由于特征子集是隨機(jī)選擇的,因此它能夠處理很高維度的數(shù)據(jù),并且不用做特征選擇;
3) 在生成過程中能夠獲得到內(nèi)部生成誤差的一種無偏估計(jì),泛化能力好;
不足體現(xiàn)在:
1) 隨機(jī)森林在某些噪音較大的分類或回歸問題上會(huì)過擬合;
2) 對(duì)于有不同取值的屬性的數(shù)據(jù),取值劃分較多的屬性會(huì)對(duì)隨機(jī)森林產(chǎn)生更大的影響。
1.1.2 極度隨機(jī)樹模型
Extra Trees, 也叫Extremely Randomized Trees, 是一種決策樹的組合方法。與隨機(jī)森林類似,同樣的bootstrap了樣本,隨機(jī)選取部分特征來構(gòu)造一棵樹,但相較于隨機(jī)森林,極度隨機(jī)樹對(duì)于劃分點(diǎn)的選擇更為隨機(jī)。優(yōu)點(diǎn)體現(xiàn)在:
1) 相比于標(biāo)準(zhǔn)的隨機(jī)森林來說,極度隨機(jī)樹使得決策的邊界更加平滑;
2) 極度隨機(jī)樹使用訓(xùn)練樣本直接構(gòu)建隨機(jī)數(shù),對(duì)bagging的方式進(jìn)行了修正,因此,當(dāng)數(shù)據(jù)噪聲較大或數(shù)據(jù)量較大時(shí)極度隨機(jī)樹表現(xiàn)要優(yōu)于隨機(jī)森林。
不足體現(xiàn)在:由于樣本劃分點(diǎn)更為隨機(jī),可能存在選取結(jié)果不是最優(yōu)的情況,受數(shù)據(jù)的影響預(yù)測(cè)結(jié)果有時(shí)具有隨機(jī)性,容易不穩(wěn)定。
1.1.3 梯度提升決策樹模型
GBDT (Gradient Boosting Decision Tree)[8], 是一種迭代的決策樹算法,該算法由多棵決策樹組成,所有樹的結(jié)論累加起來做最終答案,被認(rèn)為是一種泛化能力較強(qiáng)的算法。組成GBDT的樹是回歸樹,因此,GBDT大多用來做回歸預(yù)測(cè)。
優(yōu)點(diǎn)明顯:它的非線性變換比較多,表達(dá)能力強(qiáng),而且不需要做復(fù)雜的特征工程和特征變換。缺點(diǎn)主要體現(xiàn)在:Boost是一個(gè)串行過程,不好并行化,而且計(jì)算復(fù)雜度高,同時(shí)不太適合高維洗漱特征。
基于以上目前較優(yōu)的預(yù)測(cè)算法模型的分析,當(dāng)前模型對(duì)于預(yù)測(cè)大多存在,數(shù)據(jù)量噪聲大時(shí)容易過擬合、預(yù)測(cè)結(jié)果不穩(wěn)定、預(yù)測(cè)精度低等不足,因此基于這些問題,考慮進(jìn)行集成學(xué)習(xí)訓(xùn)練處一個(gè)較優(yōu)的集成預(yù)測(cè)模型。
2 集成學(xué)習(xí)的房價(jià)預(yù)測(cè)模型
基于集成學(xué)習(xí)預(yù)測(cè)模型可以對(duì)多特征的單一時(shí)間或空間數(shù)據(jù)進(jìn)行穩(wěn)定的預(yù)測(cè)。但這里只針對(duì)加州房價(jià)數(shù)據(jù)進(jìn)行訓(xùn)練,使其能夠作為房價(jià)預(yù)測(cè)的一個(gè)穩(wěn)定的預(yù)測(cè)模型。圖1表示了整個(gè)實(shí)驗(yàn)的模型訓(xùn)練及集成過程。
2.1 數(shù)據(jù)預(yù)處理
本研究采用加州房價(jià)數(shù)據(jù)作為模型訓(xùn)練與檢驗(yàn)的數(shù)據(jù)集。通過對(duì)原始數(shù)據(jù)集進(jìn)行分析發(fā)現(xiàn),數(shù)據(jù)不僅包括經(jīng)緯度、房屋面積、房屋年齡等這些數(shù)值數(shù)據(jù),還包括是在海岸附近還是內(nèi)地的非數(shù)值數(shù)據(jù);同時(shí)數(shù)據(jù)中還存在一些空數(shù)據(jù)。因此在對(duì)模型進(jìn)行訓(xùn)練之前要首先對(duì)數(shù)據(jù)進(jìn)行清洗,對(duì)于選取的特征的非數(shù)值數(shù)據(jù)進(jìn)行數(shù)值化處理,同時(shí)對(duì)空數(shù)據(jù)進(jìn)行替換;處理結(jié)果如表1,表2所示。
通過清洗好的數(shù)據(jù)進(jìn)行分析,我們得到了15個(gè)屬性特征,由于數(shù)據(jù)集包含20000條左右的數(shù)據(jù),特征太多容易導(dǎo)致預(yù)測(cè)結(jié)果過擬合,因此還需要對(duì)數(shù)據(jù)進(jìn)行降維處理,以避免過擬合情況的發(fā)生,這里我們采用主成分分析(PCA)的方法對(duì)數(shù)據(jù)進(jìn)行降維。首先構(gòu)建樣本矩陣X, 基于特征維數(shù)及數(shù)據(jù)個(gè)數(shù)構(gòu)建一個(gè)15*20000的樣本矩陣X=[x1,x2,…,xn]15*20000, 作為樣本;然后,我們求這個(gè)樣本的協(xié)方差矩陣C,通過計(jì)算求出協(xié)方差矩陣C應(yīng)該有15個(gè)特征值和特征向量,因此我們根據(jù)特征值的大小進(jìn)行排序并由此調(diào)整特征向量的排布 D =sort(D); V=sort(V); 保留排序最靠前的特征值, 根據(jù)公式計(jì)算降維后的新樣本矩陣Y作為最終的訓(xùn)練樣本。endprint
2.2 單一預(yù)測(cè)算法訓(xùn)練
本研究基于stacking[9-10]集成學(xué)習(xí)方法進(jìn)行集成,因此首先要對(duì)選取的ET, RF, GBDT, XGB算 法分別進(jìn)行訓(xùn)練,采用四種算法相對(duì)應(yīng)的回歸模型,利用上一步降維后得到的新樣本矩陣Y作為四種算法的訓(xùn)練樣本進(jìn)行輸入;我們對(duì)數(shù)據(jù)樣本進(jìn)行了切分,采用總數(shù)據(jù)樣本的99.5%作為訓(xùn)練集,0.5%作為測(cè)試集,以驗(yàn)證預(yù)測(cè)結(jié)果的有效性,從而對(duì)模型參數(shù)做出調(diào)整以達(dá)到各自模型預(yù)測(cè)的最好效果。通過多次試驗(yàn)測(cè)試對(duì)各個(gè)模型參數(shù)進(jìn)行調(diào)整,結(jié)果如表3所預(yù)測(cè)效果最優(yōu)。
調(diào)整參數(shù)后對(duì)測(cè)試集進(jìn)行預(yù)測(cè),并與真實(shí)數(shù)據(jù)進(jìn)行對(duì)比,四種模型預(yù)測(cè)結(jié)果分別如圖2所示。
通過均方誤差計(jì)算各自的損失函數(shù)結(jié)果如表4所示。
通過損失函數(shù)結(jié)果分析,GBDT和XGB兩種模型的預(yù)測(cè)效果要優(yōu)于ET和RF。接下來我們將對(duì)四種模型進(jìn)行集成,并用同樣的方法來評(píng)估結(jié)果,以證明集成的有效性
2.3 模型集成及訓(xùn)練
在前一節(jié),我們已經(jīng)對(duì)選用的四種基本模型進(jìn)行了訓(xùn)練,并得到了相應(yīng)的預(yù)測(cè)模型及預(yù)測(cè)結(jié)果,因此,我們?cè)诖嘶A(chǔ)上對(duì)模型進(jìn)行stacking集成,以得到最終的集成模型。這個(gè)訓(xùn)練過程主要分為兩層:假設(shè)給定的樣本數(shù)據(jù)集L包含n個(gè)樣本,這里選取的加州房價(jià)數(shù)據(jù)包含20000個(gè)樣本,即L={{ xi, yi }, i=1,2,…,n }, 其中xi是第i個(gè)樣本的特征值通過降維后的條件值,yi是第i個(gè)樣本的房價(jià)真實(shí)值,n=20000, 一共有4個(gè)不同算法的學(xué)習(xí)器。為了防止過擬合的情況,在構(gòu)造第二層數(shù)據(jù)集時(shí)采用了交叉驗(yàn)證的思想,即將原始數(shù)據(jù)集隨機(jī)分成數(shù)目大致相等的K個(gè)部分L1, L2, … , Lk, 定義Lk和L^-k = L — Lk, k= 1,2, … , k分別為第k折交叉驗(yàn)證的測(cè)試集和訓(xùn)練集,在訓(xùn)練集上分別訓(xùn)練這4個(gè)算法,得到4個(gè)模型,然后在測(cè)試集上進(jìn)行預(yù)測(cè)得到預(yù)測(cè)值,記為Zij, 表示第i個(gè)樣本經(jīng)過第j個(gè)算法的預(yù)測(cè)。這個(gè)過程重復(fù)K次,則原始數(shù)據(jù)集每一個(gè)樣本都有t個(gè)與之對(duì)應(yīng)的預(yù)測(cè)值,這些預(yù)測(cè)值與對(duì)應(yīng)樣本的真實(shí)值組成第二層數(shù)據(jù)集Lcv = {( Zi1, Zi2,…, Zit,yi), i = 1,2,…,n}。即集成訓(xùn)練的訓(xùn)練集為前一步所有預(yù)測(cè)結(jié)果與原始樣本真實(shí)值組成的新的數(shù)據(jù)集,在Lcv上再次學(xué)習(xí)得到最終的集成預(yù)測(cè)模型。
通過上一節(jié)結(jié)果對(duì)比發(fā)現(xiàn)GDBT模型對(duì)于預(yù)測(cè)效果較為理想,因此我們?cè)俅芜x用GDBT作為訓(xùn)練模型,同樣的也對(duì)n_estimators, learning_rate, subsample, verbose等參數(shù)進(jìn)行調(diào)整并當(dāng)取得穩(wěn)定最優(yōu)解時(shí)作為選取的參數(shù)值,最終得到n_estimators=100, learning_rate=0.05, subsample=0.75, verbose=20時(shí)預(yù)測(cè)結(jié)果最優(yōu)。至此,基于集成學(xué)習(xí)的房價(jià)預(yù)測(cè)模型訓(xùn)練并構(gòu)建完成,接下來將對(duì)此模型進(jìn)行評(píng)估以驗(yàn)證其有效性。
2.4 結(jié)果分析
與四種基本模型相似,我們同樣做出集成模型在預(yù)測(cè)集上的預(yù)測(cè)房價(jià)與實(shí)際房價(jià)的對(duì)比圖如圖3所示。
其中坐標(biāo)橫軸表示房價(jià)各種特征降維后的一維值,縱軸表示房價(jià)值;藍(lán)色表示實(shí)際房價(jià),橙色表示預(yù)測(cè)房價(jià)。由于預(yù)測(cè)差異細(xì)微,通過對(duì)比圖不能很直觀地看出集成模型的效果,因此我們依然利用損失函數(shù),通過均方誤差的方法來評(píng)估每個(gè)模型的預(yù)測(cè)效果,結(jié)果如表5所示。
通過均方誤差結(jié)果進(jìn)行對(duì)比分析可以看出,利用集成學(xué)習(xí)預(yù)測(cè)模型預(yù)測(cè),相比于其他四種基礎(chǔ)的預(yù)測(cè)模型的預(yù)測(cè)結(jié)果,均方誤差降低了6.7%左右,預(yù)測(cè)效果優(yōu)于四種基礎(chǔ)模型中的任意一種。實(shí)驗(yàn)結(jié)果表明,基于集成學(xué)習(xí)的房價(jià)預(yù)測(cè)模型對(duì)于提高房價(jià)的預(yù)測(cè)效果是有效的。
3 結(jié)論
本研究提出了一種集成學(xué)習(xí)的房價(jià)預(yù)測(cè)模型,該模型通過stacking的集成學(xué)習(xí)方法,集成了ET, RF, GBDT, XGB四種基本的算法,使用加州房價(jià)數(shù)據(jù),提取多個(gè)有效特征,對(duì)目標(biāo)數(shù)據(jù)降維并分別進(jìn)行訓(xùn)練,將各自的預(yù)測(cè)結(jié)果作為集成模型的輸入進(jìn)行二次訓(xùn)練得到最終的預(yù)測(cè)模型。該模型的優(yōu)點(diǎn)在于可以在一定程度上提高房價(jià)的預(yù)測(cè)效果,并能夠有效避免當(dāng)數(shù)據(jù)噪聲較大或特征較多時(shí)過擬合的情況發(fā)生。相比于其他的預(yù)測(cè)算法,雖然預(yù)測(cè)效果不一定在所有情況下都優(yōu)于單一算法預(yù)測(cè)模型,但通過多算法集成互補(bǔ)的思想極大提高了模型的穩(wěn)定性,通過多次實(shí)驗(yàn)證明其預(yù)測(cè)效果穩(wěn)定,同時(shí)預(yù)測(cè)精度也較為理想。下一步工作中,將采用更多不同特征數(shù)據(jù)對(duì)該模型進(jìn)行測(cè)試,進(jìn)一步優(yōu)化該集成模型,以提高模型的性能及預(yù)測(cè)準(zhǔn)確度。
參考文獻(xiàn):
[1] 周志華. 機(jī)器學(xué)習(xí)[M].北京:清華大學(xué)出版社, 2016.
[2] 李東月. 房價(jià)預(yù)測(cè)模型的比較研究[J]. 工業(yè)技術(shù)經(jīng)濟(jì), 2006, 25(9):65-67.
[3] 陳世鵬, 金升平. 基于隨機(jī)森林模型的房價(jià)預(yù)測(cè)[J]. 科技創(chuàng)新與應(yīng)用, 2016 (4):52-52.
[4] Rajan U, Seru A, Vig V. The failure of models that predict failure: Distance, incentives, and defaults[J]. Journal of Financial Economics, 2015, 115(2):237-260.
[5] Burger E M, Moura S J. Building Electricity Load Forecasting via Stacking Ensemble Learning Method with Moving Horizon Optimization[J]. 2015.
[6] Chen T, He T. Xgboost: extreme gradient boosting[J]. R package version 0.4-2, 2015.
[7] 李欣海. 隨機(jī)森林模型在分類與回歸分析中的應(yīng)用[J]. 應(yīng)用昆蟲學(xué)報(bào), 2013, 50(4):1190-1197.
[8] Liu J, Wu C. A gradient-boosting decision-tree approach for firm failure prediction: an empirical model evaluation of Chinese listed companies[J]. JOURNAL OF RISK MODEL VALIDATION, 2017, 11(2):43-64.
[9] Sikora R. A modified stacking ensemble machine learning algorithm using genetic algorithms[M]//Handbook of Research on Organizational Transformations through Big Data Analytics. IGI Global, 2015: 43-53.
[10] Sikora R. A modified stacking ensemble machine learning algorithm using genetic algorithms[M]//Handbook of Research on Organizational Transformations through Big Data Analytics. IGI Global, 2015: 43-53.
[11] Glaeser E L, Nathanson C G. An extrapolative model of house price dynamics[J]. Journal of Financial Economics, 2017.endprint