Python互聯(lián)網(wǎng)大數(shù)據(jù)爬蟲的武漢市二手房價格數(shù)據(jù)采集分析:Linear Regression模型
全文鏈接:http://tecdat.cn/?p=31958
原文出處:拓端數(shù)據(jù)部落公眾號
分析師:Yan Liu
我國有大量的資金都流入了房地產(chǎn)行業(yè),同時與其他行業(yè)有著千絲萬縷的聯(lián)系,可以說房地產(chǎn)行業(yè)對推動我國深化改革、經(jīng)濟(jì)發(fā)展、工業(yè)化和城市化具有不可磨滅的作用。目前對于二手房交易價格的預(yù)測主要考慮的是房屋價格受宏觀因素的影響,如國家政策、經(jīng)濟(jì)發(fā)展水平、人口數(shù)量等,并據(jù)此推測地區(qū)房價及其走勢,很少有從微觀的角度來準(zhǔn)確預(yù)測每間房屋的價格。
解決方案
任務(wù)/目標(biāo)
從區(qū)位特征、房屋屬性和交易指標(biāo)3個角度,選取包括所屬區(qū)域、建筑面積、樓層高度、周邊銀行數(shù)量、學(xué)校數(shù)量、電影院數(shù)量等在內(nèi)的多維度特征,來預(yù)測二手房的掛牌價格,實(shí)現(xiàn)基于數(shù)據(jù)的科學(xué)決策,做到一房一價的精準(zhǔn)預(yù)測。
數(shù)據(jù)?獲取
(1)在鏈家網(wǎng)上,武漢市區(qū)域被劃分為15個區(qū),共107個街道,每個頁面展示30條房屋數(shù)據(jù),通過翻頁最多可以達(dá)到100頁,即3000條數(shù)據(jù)。為了能盡可能保證抓取到鏈家上所有的數(shù)據(jù),根據(jù)深度優(yōu)先算法思想,采用先遍歷區(qū)域,再遍歷街道的遍歷思路來設(shè)計爬蟲。
(2)周邊配套設(shè)施,房屋所在小區(qū)的經(jīng)緯度數(shù)據(jù)可以從網(wǎng)頁源代碼中獲得,其關(guān)鍵詞為:resblockPosition。通過調(diào)用百度地圖API可以獲得上圖所示的周邊配套設(shè)施數(shù)量,涵蓋了交通、教育、醫(yī)療、購物、生活、文娛共6大類,19個特征變量。
特征?預(yù)處理
(1)缺失值處理
通過對數(shù)據(jù)缺失值統(tǒng)計發(fā)現(xiàn)有8個變量存在缺失值:
分別使用剔除法、填充法來處理缺失值。houseStructure共有四種類型:平層、復(fù)式、錯層、躍層??紤]到位于同一小區(qū)的房屋,其房屋類型大多相同,故采用此方法對缺失值進(jìn)行填充:對于缺失houseStructure的房屋A,根據(jù)community_id(所屬小區(qū)ID)統(tǒng)計出與A同小區(qū)的所有房屋,再統(tǒng)計出這些房屋的houseStructure的眾數(shù)對A進(jìn)行填充。buildingTypes、liftEquip和premisesOwnership采用和houseStructure同樣的填充方法。propertyFee數(shù)據(jù)的缺失選擇使用均值填充法。
分類變量的處理
對于分布極不均衡的分類變量予以剔除,對于其他分類變量做硬編碼或獨(dú)熱編碼處理
數(shù)值變量的處理
buildingTime:建成年代,數(shù)據(jù)格式均為年份(如:2018),處理方法為構(gòu)造新的變量YearsDelta,其值等于2020年與其差值。
通過三σ法則剔除異常值。周邊配套設(shè)施包含了一公里內(nèi)的地鐵站數(shù)量、幼兒園數(shù)量、醫(yī)院數(shù)量等19個數(shù)值變量,通過繪制分布直方圖發(fā)現(xiàn)不少變量的分布存在偏態(tài)。
分別予以剔除或是將數(shù)值變量轉(zhuǎn)換為二分類變量。
數(shù)據(jù)變換
通過繪制變量分布圖,發(fā)現(xiàn)totalBuildings、totalHouses、totalDeals和Yearsdelta呈現(xiàn)出較為明顯的右偏分布,而呈現(xiàn)偏態(tài)分布的數(shù)據(jù)是不利于最終所構(gòu)建模型的效果的,因此需要對這幾個變量進(jìn)行糾偏處理,采用的方法為Johnson變換。
上述變量經(jīng)過此方法處理前后分布對比圖如下,顯然,經(jīng)過處理后的變量分布已近似于正態(tài)分布。
建模
分別建立Linear Regression模型、XGBoost模型和LightGBM模型,通過比較模型性能(評價指標(biāo)使用MSE、MAE、R square)優(yōu)劣,選出效果最佳的預(yù)測模型。
XGBoost和LightGBM模型的參數(shù)很多,參數(shù)取值不同,模型的性能也會有差別,因此需要對其主要參數(shù)進(jìn)行調(diào)優(yōu),找出最佳參數(shù)組合。常用的調(diào)參方法為GridSearchCV(網(wǎng)絡(luò)搜索法)和RandomizedSearchCV(隨機(jī)搜索法),采用GridSearchCV進(jìn)行參數(shù)調(diào)優(yōu)。
XGBoost模型調(diào)優(yōu)后的參數(shù):
LightGBM模型調(diào)優(yōu)后的參數(shù):
模型性能對比*
房價預(yù)測問題是一個回歸問題,屬于監(jiān)督學(xué)習(xí)范疇。對于所得到的模型,其對未知數(shù)據(jù)的泛化能力直接決定了模型的性能優(yōu)劣。因此為了對比不同模型對于未知數(shù)據(jù)的表現(xiàn)效果,采用十折交叉驗(yàn)證進(jìn)行模型驗(yàn)證。
三種模型的10折交叉驗(yàn)證在測試集性能評估:
三種模型在測試集上預(yù)測情況對比:
調(diào)參后的XGBoost模型和LightGBM模型訓(xùn)練出的各個特征的重要性打分排序?qū)Ρ龋?/p>
可以看出,buildingArea特征重要性得分最高,與小區(qū)情況有關(guān)的5個變量得分都排在前列;與房屋屬性相關(guān)的變量,如houseFloor、houseDecoration等,得分均位于中游,對房價的影響不大;屬于房屋周邊設(shè)施的變量,如subwayStation、park、stadium等,得分普遍都很低,對房價影響很小。
從區(qū)位特征、房屋屬性和交易指標(biāo)3個角度,從鏈家網(wǎng)上通過Python網(wǎng)絡(luò)爬蟲有針對性的獲取武漢市二手房成交記錄中的特征數(shù)據(jù)。對原始數(shù)據(jù)通過一系列預(yù)處理,運(yùn)用機(jī)器學(xué)習(xí)中的XGBoost算法、LightGBM算法和GridSearchCV算法,對處理后的數(shù)據(jù)進(jìn)行建模與參數(shù)調(diào)優(yōu)。將兩種模型在測試集上的預(yù)測效果與訓(xùn)練好的Linear Regression模型進(jìn)行對比,XGBoost和LightGBM在預(yù)測效果上有著顯著優(yōu)勢。通過XGBoost和LightGBM模型學(xué)習(xí)后的特征重要性得分可知,在三類因素中,房屋建筑面積對房價的影響最大,反映房屋所屬小區(qū)情況的變量重要性得分均排在前列,而其他房屋自身屬性、周邊配套設(shè)施的變量對價格影響較小,與大眾的直觀感受基本吻合。
在此對Yan Liu對本文所作的貢獻(xiàn)表示誠摯感謝,他擅長數(shù)據(jù)采集、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)。
最受歡迎的見解
1.R語言多元Logistic邏輯回歸 應(yīng)用案例
2.面板平滑轉(zhuǎn)移回歸(PSTR)分析案例實(shí)現(xiàn)
3.matlab中的偏最小二乘回歸(PLSR)和主成分回歸(PCR)
4.R語言泊松Poisson回歸模型分析案例
5.R語言混合效應(yīng)邏輯回歸Logistic模型分析肺癌
6.r語言中對LASSO回歸,Ridge嶺回歸和Elastic Net模型實(shí)現(xiàn)
7.R語言邏輯回歸、Naive Bayes貝葉斯、決策樹、隨機(jī)森林算法預(yù)測心臟病
8.python用線性回歸預(yù)測股票價格
9.R語言用邏輯回歸、決策樹和隨機(jī)森林對信貸數(shù)據(jù)集進(jìn)行分類預(yù)測