王冬雪,郭秀娟
(吉林建筑大學電氣與計算機學院,吉林 長春 130118)
近年來,人們對房價的關注一直居高不下。由于城市化的加劇,對房屋租賃和購房的需求也持續增加,而房價問題不僅關系到人民生活水平,更是與國民經濟發展息息相關。因此,對房價進行預測不僅對人們買賣房屋具有參考意義,而且對于政府進行房價調控也有積極作用[1]。因而確定一種可以精準反映房價走勢的算法具有重要意義。
本文通過使用XGBoost算法來預測房價。通過對數據分析、預處理及基于XGBoost模型來構建房價預測模型。影響房價的因素多且復雜,如房屋面積、房屋地理位置、房屋戶型等,本文僅選取對于房價影響較大的79個特征對房價預測模型進行評估,并選擇RMSLE算法作為預測房價的評估算法。
在實際情況下,由于環境復雜等因素,我們獲取的數據往往是存在缺失和異常的,因此,在建模前要對數據進行預處理。
該數據采集來源于Kaggle 2016年競賽項目,分為訓練數據和測試數據。其中訓練數據中有1 460個樣本,每個樣本中含有80個特征,測試數據中包含1 459個樣本,每個樣本中有79個特征。
對于數據的缺失問題,要考慮2個重要因素:缺失數據的情況是否普遍,丟失的數據是規律的還是隨機的。數據的缺失可能意味著樣本量的減少,這可能對我們接下來的分析和建模產生阻礙。因此,對缺失值的處理是必需的。對于不同的數據缺失機制,處理的方法也是不同的,常用方法分為數據填充和刪除樣本兩大類[2]。對缺失值的統計如圖1所示。本文所使用的數據缺失值不能確定是否是隨機的,例如缺失比例最高的游泳池質量,可能是由于很多房子里并沒有游泳池。因此根據缺失值的統計結果,本文通過刪除缺失比例較高的變量及帶有缺失值的樣本對缺失值進行處理。

圖1 缺失數據統計圖
本文所使用的數據集雖然給出了80個自變量,但是有些因素對房價的影響非常小,如果不進行篩選可能會影響結果的準確性[3]。因此,進一步篩選后,得出對房價最具影響的特征依次為:整體質量(整體材料和裝修)、居住面積(地面以上)、車庫容量、車庫面積、地下室總面積、一樓面積、高檔全浴室、客房總數(不含浴室)、建成年份。其相關矩陣熱力圖如圖2所示。

圖2 相關矩陣熱力圖
如圖3所示,房屋的價格已經偏離了正態分布。因此,對于非正態分布,本文采用Box-Cox變換,使數據變得更“正常”。

圖3 原始數據分布
Box-Cox變換的一般形式為:

式中y(λ)為經Box-Cox變換后的響應變量,y為原始連續因變量,λ為變換參數。以上變換要求原始變量取值為正[4]。圖4為經Box-Cox變換后分布。

圖4 變換后數據分布
XGBoost又稱極端梯度上升,它是大規模并行Boosted Tree,是Gradient Boosting Machine的擴展,在相同的環境和條件下,XGBoost比同類算法快10倍以上[5]。XGBoost還可以通過分布式運算,進一步提高訓練速度[6]。
XGBoost是由k個基模型組成的加法運算式:

其中ft為k個基模型,為第i個樣本的預測值。

其中n為樣本數量。
模型的偏差和方差共同決定了該模型的預測精度,模型的偏差具體表現為損失函數,模型越簡單則其方差越小,所以目標函數由模型的損失函數loss與抑制模型復雜度的正則項Ω組成,所以目標函數可表示為:

其中Ω為模型的正則項。
以第t步的模型為例,模型對第i個樣本xi的預測為:


而根據泰勒公式,可以把上述目標函數寫為:

其中gi為損失函數的一階導,hi為損失函數的二階導。
將決策樹定義為ft(x)=wq(x),x為某一樣本,q(x)代表該樣本所在的葉子結點,而wq則代表葉子結點取值w,所以wq(x)代表每個樣本的取值w(即預測值),則目標函數的正則項可以定義為[7]:

其中λ和γ是XGBoost定義的,其值可設定,值越大,表示越希望獲得結構簡單的樹,T為葉子數。

而其中葉子結點j對應的權值可表示為:

所以目標函數可簡化為:

記IL,IR分別是數據集的左右結點,其中I=IL∪IR,則分裂后增益為:

XGBoost在構建樹的節點時,為每個節點添加了一個缺省方向,當樣本缺失對應特征時,就會被歸類到缺省方向上。如果樣本存在特征缺失的情況,則只需分配到左右節點而無需遍歷,故算法所需遍歷的樣本量大大減少。稀疏感知算法比basic算法速度快了超過50倍[9-10]。
本文采用均方根對數誤差(RMSLE)來作為模型評價的標準。其公式如下:

對訓練集訓練100次后的RMSLE為0.041 646 875 398 8,如圖5所示。XGBoost能更好地適應不平衡的數據集,同時也更不容易過擬合,泛化能力較好,應用范圍廣泛,因此該模型基本可以實現對房價的精準預測。對于該預測模型,可應用到以下場景。

圖5 預測結果圖
1)鏈家、安居客等二手房的交易。該模型更加有利于買賣雙方看清房價接下來的走勢,及時把握住期望成交價格。
2)房產投資的應用。近年來,從《新中產白皮書》中可以看到,新中產人群,除去自住房,投資性房地產占比是最多的。因此,該模型對于投資者有一定的指導性作用。
房價預測問題本質上來說就是典型的回歸問題。本文基于XGBoost算法進行房價預測,首先對數據進行缺失值處理、相關分析及標準化處理等一系列預處理,然后使用XGBoost算法對數據集進行建模和訓練,最終實現對房價的精準預測。