張志鋒 崔亞東 崔霄
摘要:為了更精確快速的預(yù)測二手房房價(jià),將對(duì)最近抓取的南京二手房數(shù)據(jù)集進(jìn)行數(shù)據(jù)樣本分析。通過對(duì)樣本的基本信息和屬性的可視化分析,對(duì)數(shù)據(jù)集進(jìn)行異常識(shí)別填補(bǔ)、啞編碼、數(shù)據(jù)標(biāo)準(zhǔn)化等數(shù)據(jù)預(yù)處理工作;提出將使用XGBoost算法對(duì)南京二手房數(shù)據(jù)集進(jìn)行訓(xùn)練建模;結(jié)合線性回歸,嶺回歸和lasso回歸,對(duì)訓(xùn)練結(jié)果進(jìn)行比較,XGBoost模型應(yīng)用效果比較好,在預(yù)測房價(jià)上具有一定的實(shí)用性。
關(guān)鍵詞:XGBoost;嶺回歸;lasso回歸;二手房
中圖分類號(hào):F832.4;TP181 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2019)11-0178-03
0 引言
房地產(chǎn)市場的發(fā)展快速,尤其是最近幾年,多數(shù)家庭都會(huì)選擇購買房屋。由于購房為消費(fèi)者的剛性需求,而二手房的性價(jià)比較高,所以在市場上的交易量也較大,二手房房價(jià)的精準(zhǔn)快速預(yù)測有著重要意義。
XGBoost是陳天奇在arixv上發(fā)布的一篇關(guān)于XGBoost的論文,而根據(jù)kaggle競賽在2015年的統(tǒng)計(jì),29只冠軍隊(duì)中,有17只使用了XGBoost算法,其中有8只隊(duì)伍僅使用了XGBoost一種算法。XGBoost的基分類器為CART回歸樹,建了高可擴(kuò)展的端到端的boosting系統(tǒng),提出了具有合理理論支撐的分布分位調(diào)整框架;介紹了并行使用稀疏處理樹的學(xué)習(xí)算法;提出了基于緩存塊的結(jié)構(gòu)便于外存樹的學(xué)習(xí)。
1 數(shù)據(jù)集分析
在對(duì)進(jìn)本信息進(jìn)行可視化[1]之前,可以先通過pandas庫中的數(shù)據(jù)描述函數(shù)對(duì)數(shù)據(jù)有個(gè)整體的認(rèn)知。還可以通過對(duì)數(shù)據(jù)進(jìn)行詞云化整理,通過二手房信息中經(jīng)常出現(xiàn)的高頻詞,確定需要可視化的特征屬性,從而不需要對(duì)所有的特征進(jìn)行可視化。
對(duì)數(shù)據(jù)進(jìn)行總體可視化,分析數(shù)據(jù)規(guī)律。
(1)通過圖1比較中文數(shù)據(jù)詞云[2]和特征值,對(duì)比特征出現(xiàn)頻率和特征間對(duì)應(yīng)關(guān)系,并且決定接下來如何對(duì)數(shù)據(jù)進(jìn)行異常值處理[3]等。(2)通過圖2二手房數(shù)量條形圖比較二手房分布信息。(3)通過圖3建筑面積直方圖分析房屋在不同面積分布區(qū)域的數(shù)量信息。(4)通過圖4房屋戶型條形圖分析不同類型房屋所占比例,便于后續(xù)的選擇戶型進(jìn)行啞編碼處理。(5)通過圖5二手房總價(jià)與建筑面積分布散點(diǎn)圖分析異常值,對(duì)異常值進(jìn)行處理。
2 南京二手房房價(jià)預(yù)測模型
2.1 XGBoost模型原理分析
給出n個(gè)實(shí)例,m維特征的情況下,D={(xi,yi)}(|D|=n, xi∈m,yi∈),回歸樹的繼承模型(多個(gè)模型相加的過程)使用k個(gè)相加函數(shù)預(yù)測結(jié)果。
為了避免出現(xiàn)過擬合的現(xiàn)象,需要給模型增加正則項(xiàng)來修正模型。一種標(biāo)準(zhǔn)的正則化目標(biāo)項(xiàng)為損失函數(shù)與正則項(xiàng)組合。這里主要使用L2正則。
根據(jù)boosting算法思想,回歸樹的集成模型不能再傳統(tǒng)的歐幾里得空間中得到合適的解,而應(yīng)該通過迭代求近似解[4]。
2.2 數(shù)據(jù)預(yù)處理
在對(duì)二手房數(shù)據(jù)集建模時(shí),首先需要對(duì)數(shù)據(jù)集進(jìn)行清理,將數(shù)據(jù)集中一些缺失值和異常數(shù)據(jù)剔除掉,保證數(shù)據(jù)的準(zhǔn)確性;查看數(shù)據(jù)集會(huì)發(fā)現(xiàn),數(shù)據(jù)集中會(huì)有一些特征項(xiàng)需要進(jìn)行啞編碼操作,將對(duì)象類型(Object)的數(shù)據(jù)轉(zhuǎn)化為模型可以識(shí)別的語言,比如在本數(shù)據(jù)集中需要處理的對(duì)象類型特征包括二手房所在區(qū)域,戶型,樓層等信息,還有一些例如建筑面積等特征需要轉(zhuǎn)換為單精度類型(float)等。
2.3 超參數(shù)優(yōu)化
XGBoost算法十分的精致,可以處理各種不規(guī)則的數(shù)據(jù),而使用XGBoost構(gòu)造模型過程中,提高模型的表現(xiàn)并不是那么容易,而對(duì)于提高模型表現(xiàn)來說,參數(shù)的調(diào)整十分必要。本文中,主要通過網(wǎng)格交叉驗(yàn)證的方式,來對(duì)參數(shù)進(jìn)行調(diào)整,主要調(diào)整的參數(shù)有l(wèi)earning_rate,max_depth,n_estimators。每個(gè)參數(shù)給出一定范圍的值,共進(jìn)行192次的篩選,最終得到了最佳參數(shù):Best: 0.796658 using {‘learning_rate:0.1,‘max_depth:6,‘n_estimators:200}。
2.4 特征選擇
關(guān)于特征選擇有很多算法可以運(yùn)用。這里使用基于模型的特征排序算法,對(duì)于此次建模來說,也是比較高效的一種,在模型建立過程中對(duì)特征進(jìn)行篩選排序,在不影響預(yù)測準(zhǔn)確度的情況下,抽取最少的特征出來。這里共抽取了36維的特征,即保證了預(yù)測準(zhǔn)確度,又最大限度的減少了訓(xùn)練模型時(shí)間。
2.5 模型訓(xùn)練
這里按照訓(xùn)練集與測試集8:2的比例對(duì)數(shù)據(jù)集進(jìn)行隨機(jī)抽樣,通過超參數(shù)優(yōu)化以及特征選擇之后,在訓(xùn)練集上對(duì)模型進(jìn)行訓(xùn)練,最后得到模型的訓(xùn)練R2(R-Square)為:0.796558。
模型訓(xùn)練結(jié)果可以看出,對(duì)模型在訓(xùn)練集上的表現(xiàn)還不錯(cuò),例如在相對(duì)正常的數(shù)據(jù)集里預(yù)測效果很好,在一些異常值上,并沒有完美的重合,可以看出模型并沒有過擬合,有相當(dāng)穩(wěn)定的魯棒性。
2.6 評(píng)價(jià)指標(biāo)
本文是通過XGBoost算法在南京二手房數(shù)據(jù)集訓(xùn)練模型,主要是為了準(zhǔn)確預(yù)測二手房房屋總價(jià),所以評(píng)價(jià)標(biāo)準(zhǔn)即為預(yù)測的準(zhǔn)確度。本模型的評(píng)價(jià)指標(biāo)為在測試集中計(jì)算模型的R2,以最終的分?jǐn)?shù)作為該模型的評(píng)價(jià)指標(biāo)。計(jì)算公式如下:
R2=1-
3 不同算法實(shí)例比較
本文對(duì)南京二手房數(shù)據(jù)集使用了線性回歸、嶺回歸與lasso回歸,并與XGBoost算法進(jìn)行了對(duì)比。
(1)多變量線性回歸模型見圖6;(2)lasso回歸模型見圖7;(3)ridge回歸模型圖見圖8;(4)XGBoost集成算法模型見圖9。
從圖6到圖9中可以看出,在對(duì)數(shù)據(jù)集的測試中,線性回歸表現(xiàn)出了明顯的欠擬合,嶺回歸和lasso回歸表現(xiàn)良好,但在測試集上效果都不如XGBoost算法。
4 結(jié)語
本文提出了基于XGBoost集成算法的二手房房價(jià)預(yù)測模型,并通過對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,特征選擇,基分類器選擇,網(wǎng)格交叉驗(yàn)證,超參數(shù)優(yōu)化構(gòu)建出了集成模型,通過對(duì)數(shù)據(jù)集的隨機(jī)抽樣分割為訓(xùn)練集和測試集,并在測試集上對(duì)模型進(jìn)行評(píng)估,R2值達(dá)到0.796558,在保證準(zhǔn)確度的情況下,盡可能的對(duì)模型進(jìn)行了優(yōu)化。
參考文獻(xiàn)
[1] 劉彧祺,張智斌,陳昊昱,等.基于XGBoost集成的可解釋信用評(píng)分模型[J].數(shù)據(jù)通信,2019(03):27-32.
[2] 錢仲文,陳浩,紀(jì)德良.一種基于XGBoost算法的月度負(fù)荷預(yù)測方法[J].浙江電力,2019,38(05):77-82.
[3] 陳欣,于俊洋,趙媛媛.基于CNN和B-LSTM的文本處理模型研究[J].輕工學(xué)報(bào),2018,33(05):103-108.
[4] 朱顥東,薛校博,李紅嬋,孟潁輝.海量數(shù)據(jù)下基于Hadoop的分布式FP-Growth算法[J].輕工學(xué)報(bào),2018,33(05):97-102+108.