慕鋼,張宏烈,黨佳俊,李廣峰
(1.齊齊哈爾大學 計算機與控制工程學院,黑龍江 齊齊哈爾 161006;2.齊齊哈爾克東縣第一中學,黑龍江 齊齊哈爾 164800)
當前房地產業發展迅速,成為了國民經濟的重要支柱產業.隨著國家對房地產業的調控,二手房在市場上所占比重也在不斷增長.無論新房還是二手房,其房屋價格的未來走勢越來越受到人們的普遍關注,因此采用機器學習算法開展房屋價格預測研究非常有必要.它不僅能為群體大眾買賣房屋提供建設性的引導意見,還會對當地政府合理地規范房地產市場提供重要的數據支持.
目前,存在眾多的因素對房價的發展趨勢造成影響,包括房屋地理位置,周圍環境配套設施,該地區的房屋銷售價格,人均GDP等.在房屋預測的方法上,許多學者選擇機器學習算法建立了不同的房價預測模型.如2009年Onur?zsoy[1]使用分類和回歸樹(CART)等方法分析了房價的主要影響因素,結果表明房屋大小、有無電梯等是房價的重要影響變量.Runeson[2]等比較人工神經網絡(Artificial Neural Network,ANN)和對數線性回歸模型(Log-linear regression,LR),實驗證明LR效果更佳.魏云云[3]等通過采用灰色模型(Grey Model,簡稱GM模型)與BP神經網絡結合建立模型對房屋價格進行預測等.這些方法存在著共同的缺點:擬合優度欠佳,運行效率慢.本文應用LightGBM算法,面對房價波動影響較大的30多個特征,進行數據分析和處理,通過模型統計推出房屋價格.
為了能夠對房屋價格未來運行趨勢做出合理的預測,大量以及準確的基礎數據是不可或缺的,本次研究通過爬蟲方法,從鏈家網上爬取了2018年上海市二手房房價的數據以及信息[4],獲得61 609條數據,每個數據共有30多個屬性.
從網上爬取的基礎數據中難免會不完整,某些數據存在著偏差或者缺失,本實驗使用隨機森林算法對Unknown值進行推測,處理后的數據寫入數據所在的data_r.csv文件中.
使用Pycharm軟件對爬取的數據進行統計分析,發現很多因素影響著房屋的價格.如房屋的年齡一定程度上決定著房屋的價格,所以對房屋的年齡進行了統計[5](見圖1).由圖1可以看出,在售的二手房中新房只有少數,大部分的房屋年齡超過5年.此外房屋面積也是房屋價格的重要參考因素(見圖2).此外對于房屋來說,地理位置很大程度上決定著房屋的數量,如發達的區域,人口密度就會相對較大,住房的需求也就隨之提升,房屋數量相對比較多(見圖3).當然地理位置與房屋價格也密切相關(見圖4),而房屋地理位置分布情況見圖5.

圖1 房屋年齡

圖2 住房面積與價格之間的關系

圖3 各地區房屋數量示意圖

圖4 地理位置與價格之間的關系
GBDT(Gradient Boosting Decision Tree,梯度提升決策樹),是最好的機器學習算法之一,其主要思想是利用弱分類器(決策樹)迭代訓練以得到最優模型,該模型具有訓練效果好、不易過擬合等優點.

圖5 房屋地理位置分布
XGBoost是一個優化的分布式梯度增強庫,它在Gradient Boosting框架下實現機器學習算法.XGBoost提供了并行樹提升,可以快速準確地解決許多數據科學問題.XGBoost的可擴展性歸功于幾個重要的系統和算法優化.這些創新包括:一種新穎的用于處理稀疏數據的樹學習算法,理論上合理的weighted quantile sketch過程能夠在近似樹學習中處理實例權重,引入一個新穎的稀疏感(sparsity-aware)算法用于并行樹學習,一種有效地緩存感知塊結構用于核外樹學習.
但是這2個模型的缺點也非常明顯,(1)在每輪迭代時,都需要遍歷整個訓練數據多次.如果把整個訓練數據裝進內存則會限制訓練數據的大小;如果不裝進內存,反復地讀寫訓練數據又會消耗非常大的時間.(2)預排序方法的時間和空間的消耗都很大.所以本文基于LightGBM模型對數據進行處理和優化.
LightGBM(Light Gradient Boosting Machine)是一個實現GBDT算法的框架,支持高效率的并行訓練.LightGBM模型包含很多實現優化功能的部分:如基于Histogram的決策樹算法,帶深度限制的Leaf-wise葉子生長策略,直方圖做差加速,直接支持類別特征,Cache命中率優化,基于直方圖的稀疏特征優化,多線程優化等.
其中Histogram算法的基本思想是先把連續的浮點特征值離散化成k個整數,同時構造一個寬度為k的直方圖.在遍歷數據的時候,根據離散化后的值作為索引在直方圖中累積統計量,當遍歷一次數據后,直方圖累積了需要的統計量,然后根據直方圖的離散值,遍歷尋找最優的分割點,其優化過程見圖6.

圖6 Histogram算法優化過程
使用Histogram算法有很多優點,最明顯就是內存消耗的降低.Histogram算法不僅不需要額外存儲預排序的結果,而且可以只保存特征離散化后的值,而這個值一般用8位整型存儲就足夠了,內存消耗可以降低為原來的1/8,從而解決了GBDT模型和XGboost模型的弱點.不僅如此,在Histogram算法基礎上,LightGBM又進一步優化.它摒棄了大多數GBDT工具使用的按層生長(level-wise)的決策樹生長策略,而使用了帶有深度限制的按葉子生長(leaf-wise)算法.Leaf-wise則是一種更為高效的策略,每次從當前所有葉子中,找到分裂增益最大的一個葉子,然后分裂,如此循環.Level-wise過一次數據可以同時分裂同一層的葉子,容易進行多線程優化,也好控制模型復雜度,不容易過擬合.因此,同Level-wise相比,在分裂次數相同的情況下,Leaf-wise可以降低更多的誤差,得到更好的精度(見圖7~8).

圖7 按層生長的決策樹策略

圖8 按葉生長的決策樹策略
本研究針對2018年上海市二手房數據集,分別使用線性回歸、KNN、神經網絡、XGBoost[6]和LightGBM算法進行預測并且對比.在測試集中計算模型的擬合優度R2作為算法的評判依據,也是預測結果,R2的計算公式

對數據集來說,訓練集與測試集按照8∶2的比例進行隨機抽樣,通過參數優化以及特征選擇之后,在訓練集上對模型進行訓練,最后得到各算法的訓練擬合優度.本研究使用Python語言編寫算法,運行結果見圖9~13,各類算法擬合優度對比見表1.
在測試中,LightGBM效果最佳,R2達到0.883 078 131 800 733 6,其次是XGBoost[7],而KNN效果最差.可見,在擬合優度方面,LightGBM[8]模型優于XGBoost模型0.829 926 118 494 329 3的擬合優度值.

圖9 線性回歸

圖10 KNN回歸

圖11 神經網絡回歸

圖12 XGBoost模型

圖13 LightGBM模型

表1 各類算法擬合優度對比
本文對網上爬取獲得的數據集進行了多元分析,從數據處理策略和數據訓練形式等方面對常用的機器學習算法進行了對比,提出了基于LightGBM算法的房價預測模型.通過對數據集的隨機抽樣分割為訓練集和測試集,并在測試中對幾種模型進行了評估.評估結果表明,LightGBM模型的預測效果最好,有相當穩定的魯棒性,該房價預測模型具有一定的實用性.