慕鋼,張宏烈,黨佳俊,李廣峰
(1.齊齊哈爾大學(xué) 計算機(jī)與控制工程學(xué)院,黑龍江 齊齊哈爾 161006;2.齊齊哈爾克東縣第一中學(xué),黑龍江 齊齊哈爾 164800)
當(dāng)前房地產(chǎn)業(yè)發(fā)展迅速,成為了國民經(jīng)濟(jì)的重要支柱產(chǎn)業(yè).隨著國家對房地產(chǎn)業(yè)的調(diào)控,二手房在市場上所占比重也在不斷增長.無論新房還是二手房,其房屋價格的未來走勢越來越受到人們的普遍關(guān)注,因此采用機(jī)器學(xué)習(xí)算法開展房屋價格預(yù)測研究非常有必要.它不僅能為群體大眾買賣房屋提供建設(shè)性的引導(dǎo)意見,還會對當(dāng)?shù)卣侠淼匾?guī)范房地產(chǎn)市場提供重要的數(shù)據(jù)支持.
目前,存在眾多的因素對房價的發(fā)展趨勢造成影響,包括房屋地理位置,周圍環(huán)境配套設(shè)施,該地區(qū)的房屋銷售價格,人均GDP等.在房屋預(yù)測的方法上,許多學(xué)者選擇機(jī)器學(xué)習(xí)算法建立了不同的房價預(yù)測模型.如2009年Onur?zsoy[1]使用分類和回歸樹(CART)等方法分析了房價的主要影響因素,結(jié)果表明房屋大小、有無電梯等是房價的重要影響變量.Runeson[2]等比較人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)和對數(shù)線性回歸模型(Log-linear regression,LR),實(shí)驗(yàn)證明LR效果更佳.魏云云[3]等通過采用灰色模型(Grey Model,簡稱GM模型)與BP神經(jīng)網(wǎng)絡(luò)結(jié)合建立模型對房屋價格進(jìn)行預(yù)測等.這些方法存在著共同的缺點(diǎn):擬合優(yōu)度欠佳,運(yùn)行效率慢.本文應(yīng)用LightGBM算法,面對房價波動影響較大的30多個特征,進(jìn)行數(shù)據(jù)分析和處理,通過模型統(tǒng)計推出房屋價格.
為了能夠?qū)Ψ课輧r格未來運(yùn)行趨勢做出合理的預(yù)測,大量以及準(zhǔn)確的基礎(chǔ)數(shù)據(jù)是不可或缺的,本次研究通過爬蟲方法,從鏈家網(wǎng)上爬取了2018年上海市二手房房價的數(shù)據(jù)以及信息[4],獲得61 609條數(shù)據(jù),每個數(shù)據(jù)共有30多個屬性.
從網(wǎng)上爬取的基礎(chǔ)數(shù)據(jù)中難免會不完整,某些數(shù)據(jù)存在著偏差或者缺失,本實(shí)驗(yàn)使用隨機(jī)森林算法對Unknown值進(jìn)行推測,處理后的數(shù)據(jù)寫入數(shù)據(jù)所在的data_r.csv文件中.
使用Pycharm軟件對爬取的數(shù)據(jù)進(jìn)行統(tǒng)計分析,發(fā)現(xiàn)很多因素影響著房屋的價格.如房屋的年齡一定程度上決定著房屋的價格,所以對房屋的年齡進(jìn)行了統(tǒng)計[5](見圖1).由圖1可以看出,在售的二手房中新房只有少數(shù),大部分的房屋年齡超過5年.此外房屋面積也是房屋價格的重要參考因素(見圖2).此外對于房屋來說,地理位置很大程度上決定著房屋的數(shù)量,如發(fā)達(dá)的區(qū)域,人口密度就會相對較大,住房的需求也就隨之提升,房屋數(shù)量相對比較多(見圖3).當(dāng)然地理位置與房屋價格也密切相關(guān)(見圖4),而房屋地理位置分布情況見圖5.
圖1 房屋年齡
圖2 住房面積與價格之間的關(guān)系
圖3 各地區(qū)房屋數(shù)量示意圖
圖4 地理位置與價格之間的關(guān)系
GBDT(Gradient Boosting Decision Tree,梯度提升決策樹),是最好的機(jī)器學(xué)習(xí)算法之一,其主要思想是利用弱分類器(決策樹)迭代訓(xùn)練以得到最優(yōu)模型,該模型具有訓(xùn)練效果好、不易過擬合等優(yōu)點(diǎn).
圖5 房屋地理位置分布
XGBoost是一個優(yōu)化的分布式梯度增強(qiáng)庫,它在Gradient Boosting框架下實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法.XGBoost提供了并行樹提升,可以快速準(zhǔn)確地解決許多數(shù)據(jù)科學(xué)問題.XGBoost的可擴(kuò)展性歸功于幾個重要的系統(tǒng)和算法優(yōu)化.這些創(chuàng)新包括:一種新穎的用于處理稀疏數(shù)據(jù)的樹學(xué)習(xí)算法,理論上合理的weighted quantile sketch過程能夠在近似樹學(xué)習(xí)中處理實(shí)例權(quán)重,引入一個新穎的稀疏感(sparsity-aware)算法用于并行樹學(xué)習(xí),一種有效地緩存感知塊結(jié)構(gòu)用于核外樹學(xué)習(xí).
但是這2個模型的缺點(diǎn)也非常明顯,(1)在每輪迭代時,都需要遍歷整個訓(xùn)練數(shù)據(jù)多次.如果把整個訓(xùn)練數(shù)據(jù)裝進(jìn)內(nèi)存則會限制訓(xùn)練數(shù)據(jù)的大??;如果不裝進(jìn)內(nèi)存,反復(fù)地讀寫訓(xùn)練數(shù)據(jù)又會消耗非常大的時間.(2)預(yù)排序方法的時間和空間的消耗都很大.所以本文基于LightGBM模型對數(shù)據(jù)進(jìn)行處理和優(yōu)化.
LightGBM(Light Gradient Boosting Machine)是一個實(shí)現(xiàn)GBDT算法的框架,支持高效率的并行訓(xùn)練.LightGBM模型包含很多實(shí)現(xiàn)優(yōu)化功能的部分:如基于Histogram的決策樹算法,帶深度限制的Leaf-wise葉子生長策略,直方圖做差加速,直接支持類別特征,Cache命中率優(yōu)化,基于直方圖的稀疏特征優(yōu)化,多線程優(yōu)化等.
其中Histogram算法的基本思想是先把連續(xù)的浮點(diǎn)特征值離散化成k個整數(shù),同時構(gòu)造一個寬度為k的直方圖.在遍歷數(shù)據(jù)的時候,根據(jù)離散化后的值作為索引在直方圖中累積統(tǒng)計量,當(dāng)遍歷一次數(shù)據(jù)后,直方圖累積了需要的統(tǒng)計量,然后根據(jù)直方圖的離散值,遍歷尋找最優(yōu)的分割點(diǎn),其優(yōu)化過程見圖6.
圖6 Histogram算法優(yōu)化過程
使用Histogram算法有很多優(yōu)點(diǎn),最明顯就是內(nèi)存消耗的降低.Histogram算法不僅不需要額外存儲預(yù)排序的結(jié)果,而且可以只保存特征離散化后的值,而這個值一般用8位整型存儲就足夠了,內(nèi)存消耗可以降低為原來的1/8,從而解決了GBDT模型和XGboost模型的弱點(diǎn).不僅如此,在Histogram算法基礎(chǔ)上,LightGBM又進(jìn)一步優(yōu)化.它摒棄了大多數(shù)GBDT工具使用的按層生長(level-wise)的決策樹生長策略,而使用了帶有深度限制的按葉子生長(leaf-wise)算法.Leaf-wise則是一種更為高效的策略,每次從當(dāng)前所有葉子中,找到分裂增益最大的一個葉子,然后分裂,如此循環(huán).Level-wise過一次數(shù)據(jù)可以同時分裂同一層的葉子,容易進(jìn)行多線程優(yōu)化,也好控制模型復(fù)雜度,不容易過擬合.因此,同Level-wise相比,在分裂次數(shù)相同的情況下,Leaf-wise可以降低更多的誤差,得到更好的精度(見圖7~8).
圖7 按層生長的決策樹策略
圖8 按葉生長的決策樹策略
本研究針對2018年上海市二手房數(shù)據(jù)集,分別使用線性回歸、KNN、神經(jīng)網(wǎng)絡(luò)、XGBoost[6]和LightGBM算法進(jìn)行預(yù)測并且對比.在測試集中計算模型的擬合優(yōu)度R2作為算法的評判依據(jù),也是預(yù)測結(jié)果,R2的計算公式
對數(shù)據(jù)集來說,訓(xùn)練集與測試集按照8∶2的比例進(jìn)行隨機(jī)抽樣,通過參數(shù)優(yōu)化以及特征選擇之后,在訓(xùn)練集上對模型進(jìn)行訓(xùn)練,最后得到各算法的訓(xùn)練擬合優(yōu)度.本研究使用Python語言編寫算法,運(yùn)行結(jié)果見圖9~13,各類算法擬合優(yōu)度對比見表1.
在測試中,LightGBM效果最佳,R2達(dá)到0.883 078 131 800 733 6,其次是XGBoost[7],而KNN效果最差.可見,在擬合優(yōu)度方面,LightGBM[8]模型優(yōu)于XGBoost模型0.829 926 118 494 329 3的擬合優(yōu)度值.
圖9 線性回歸
圖10 KNN回歸
圖11 神經(jīng)網(wǎng)絡(luò)回歸
圖12 XGBoost模型
圖13 LightGBM模型
表1 各類算法擬合優(yōu)度對比
本文對網(wǎng)上爬取獲得的數(shù)據(jù)集進(jìn)行了多元分析,從數(shù)據(jù)處理策略和數(shù)據(jù)訓(xùn)練形式等方面對常用的機(jī)器學(xué)習(xí)算法進(jìn)行了對比,提出了基于LightGBM算法的房價預(yù)測模型.通過對數(shù)據(jù)集的隨機(jī)抽樣分割為訓(xùn)練集和測試集,并在測試中對幾種模型進(jìn)行了評估.評估結(jié)果表明,LightGBM模型的預(yù)測效果最好,有相當(dāng)穩(wěn)定的魯棒性,該房價預(yù)測模型具有一定的實(shí)用性.