中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

如何用大數(shù)據(jù)+機(jī)器學(xué)習(xí)精準(zhǔn)的預(yù)測房價?

2018-11-22    來源:raincent

容器云強(qiáng)勢上線!快速搭建集群,上萬Linux鏡像隨意使用

一提到房價,就“壓力山大”!無論是首套房還是改善性需求,買在地點賣在高點都是一個可遇不可求的事兒,所以如果有位數(shù)據(jù)大俠能幫助設(shè)計一個預(yù)測房價的神器,豈不是“人生很值得”!本期DT數(shù)據(jù)與紐約數(shù)據(jù)科學(xué)學(xué)院合作的數(shù)據(jù)線專欄中,四位數(shù)據(jù)俠通過“數(shù)據(jù)超能力”試圖利用Python通過機(jī)器學(xué)習(xí)方式來預(yù)測房價,快來看看他們是如何做得吧!

 

 

如果讓你全憑直覺來判斷,上圖里的四個房子哪個最貴?

(也許)大多數(shù)人會說是右邊的藍(lán)色房子,因為它看起來最大也最新。然而,當(dāng)你看完今天這篇文章,你可能會有不同的答案,并且發(fā)現(xiàn)一種更準(zhǔn)確的預(yù)測房屋價格的方法。

這個項目的數(shù)據(jù)集可以在kaggle頁面找到:這些數(shù)據(jù)被分為兩類,訓(xùn)練集和測試集。

數(shù)據(jù)列表一共有2600行、79列,包括了不同房屋的描述性數(shù)據(jù),比如臥室數(shù)、一層的房屋面積等。訓(xùn)練集里還包括了房屋的真實價格數(shù)據(jù)。

因變量

 

 

圖片說明:房價的分布圖

房屋價格總體來看,是一個平均值和中位數(shù)在20萬美元左右的向右傾斜的分布,最高的價格在55萬到75萬之間。

 

 

圖片說明:房價的描述統(tǒng)計

自變量

類別變量(Categorical Variables )

 

 

圖片說明:房屋質(zhì)量vs.房價

大多數(shù)(79種變量中有51種)是定性變量(categorical),包括房子所在社區(qū)、整體質(zhì)量、房屋類型等。最好預(yù)測的變量是與質(zhì)量相關(guān)的變量。比如,整體質(zhì)量這個變量最終證明是預(yù)測價格的最關(guān)鍵因素。房子某一個部分的質(zhì)量,比如泳池、地下室等,也都與最終價格有很強(qiáng)的相關(guān)性。

數(shù)字變量(numeric variables)

數(shù)字變量大多是關(guān)于房屋面積。它們也與價格相關(guān)。

 

 

圖片說明:除去地下室的房屋居住面積vs.房價

 

 

圖片說明:總面積vs.房價

缺失的數(shù)據(jù)

 

 

圖片說明:缺失值

過程中的一大挑戰(zhàn)是那些缺失的數(shù)據(jù),對于像泳池質(zhì)量、泳池面積等數(shù)據(jù),如果數(shù)據(jù)缺失了,則說明這棟房子沒有泳池,我們會用0來代替,如果是定性變量,則用“無”來代替。對于那些“意外缺失”的數(shù)據(jù),我們則通過其他變量進(jìn)行估算,補充進(jìn)去。

 

 

圖片說明:缺失值與填補

特征工程

處理一大堆不清晰的特征總是充滿挑戰(zhàn)。下面我們要創(chuàng)造和拋棄一些變量,并引入一些啞變量等。

拋棄變量

通常人們會刪除一些相互高度關(guān)聯(lián)的特征。在我們的分析中,我發(fā)現(xiàn)車庫建造年份和房屋建造年份關(guān)聯(lián)度很強(qiáng),關(guān)聯(lián)值達(dá)到0.83。而且75.8%以上的情況下,這兩個值是相同的。因此,我們決定把有很多缺失的車庫年份數(shù)據(jù)丟掉。

創(chuàng)造新的變量

有時候需要創(chuàng)造新的變量從而提升整個模型的表現(xiàn),我們設(shè)計了兩個新變量:

1 賣掉時的房齡

2 賣掉時距重新裝修過去多少年

處理變量

1 我們找出11個定性變量,它們存在某種排序的可能,可以分別將它們劃分為很棒、一般和很差

2 對于其他的定性變量,我們使用pandas.get_dummies來得到獨熱編碼(One-Hot Encoding)

3 我們找到24個連續(xù)數(shù)據(jù)變量,它們的斜率大于0.75(向右傾斜)我們使用對數(shù)變換來去掉本身的偏態(tài)

 

 

圖片說明:特征檢測

正則化(regularization)

因為我們需要處理很多變量,所以我們引入了正則化的操作,來處理在過程中發(fā)現(xiàn)的那些多重共線性關(guān)系,以及使用多元線性回歸模型可能帶來的過度擬合問題。

正則化最棒的地方在于它能減少模型的復(fù)雜性,因為它能自動地為你完成特征挑選的任務(wù)。所有正則化模型都會懲罰多余的特征。

正則化的模型包括 Lasso, Ridge 模型和彈性網(wǎng)絡(luò)(Elastic Net)。Lasso 算法(最小絕對值收斂和選擇算法)會將系數(shù)設(shè)為0,而ridge回歸模型會最小化系數(shù),使其中的一些非常接近0。彈性網(wǎng)絡(luò)模型是Lasso和Ridge的混合。它將彼此相關(guān)的變量分到同一組,如果里面有一個變量是個很強(qiáng)的預(yù)測變量(predictor),那么整個組都會被納入這個模型。

下一步是將每個模型的超參數(shù)進(jìn)行交叉驗證。

我們將 Lasso模型的阿爾法定為 = .0005,Ridge的阿爾法為2.8 。彈性網(wǎng)絡(luò)模型的阿爾法為 .0005 , L1_Ratio = 0.9。因為當(dāng) L1_Ratio = 0.9 時,彈性網(wǎng)絡(luò)模型十分接近 Lasso模型,后者有默認(rèn)的 L1_Ratio = 1 。

 

 

特征選擇

 

 

圖片說明:Lasso與Ridge模型的回歸系數(shù)

Lasso模型

對房屋價格的正算子系數(shù):地上生活空間、整體房子狀況以及Stone Bridge, North Ridge 和 Crawford社區(qū)。

負(fù)算子系數(shù):MS Zoing,Edwards 社區(qū)和地上廚房。

Ridge模型

對房屋價格的正算子系數(shù):整體住宅面積、房頂材料(木瓦)、整體狀況。

負(fù)算子系數(shù):一般的分區(qū)需求、離主干道或鐵路的距離,以及游泳池狀況良好。

訓(xùn)練數(shù)據(jù)中模型預(yù)測的價格和真實價格的對比

下面兩圖展示了我們的模型的精確度。離紅線近的以及在紅線上面的是我們預(yù)測準(zhǔn)確的,那些偏離的比價多的需要我們進(jìn)一步研究。

 

 

圖片說明:預(yù)測價格vs.真實價格

梯度提升回歸(Gradient boosting regression)

梯度提升回歸是我們表現(xiàn)最好的一個算法。我們最初使用全部特征(基準(zhǔn)模型)來訓(xùn)練梯度提升機(jī)。我使用 scikit-learn這個Python包提供的 GridSearchCV 功能來進(jìn)行參數(shù)調(diào)整的交叉驗證。我們最好的模型參數(shù)是:學(xué)習(xí)值0.05,估計量2000,最大深度3。

我們制作了一個相對重要性表格,將梯度提升特征的重要性用可視化的方式呈現(xiàn)。特征重要性分?jǐn)?shù)代表每個特征在構(gòu)建這個加強(qiáng)版的決策樹里是否有用。地上生活空間面積、廚房質(zhì)量、地下室面積以及車庫大小是最重要的特征。

 

 

圖片說明:相對重要性

PCA(主成分分析 )+ 梯度提升回歸

我們接下來嘗試通過減少特征的維度來提高我們基準(zhǔn)模型的表現(xiàn)。高維度的數(shù)據(jù)可能很分散,就會讓使用某種算法來訓(xùn)練有用的模型變得更難?偟膩碚f,最優(yōu)的、非多余的特征子集會對預(yù)測性的算法有好處,能夠提高訓(xùn)練率以及加強(qiáng)它的可解釋性和一般性。

我們使用 scikit-learn 的 Pipelines 來管理我們的機(jī)器學(xué)習(xí)模型,它允許我們通過應(yīng)用一個估計量來完成一系列數(shù)據(jù)的轉(zhuǎn)化工作。

我們設(shè)計了不同的pipeline,每一個有不同的估計量。對于梯度提升回歸,我們的pipelin包括:

1 特征縮放,使用了scikit-learn 的python包

2 降維,使用PCA(留下了150個主要的成分)

我們完成了特征工程后,得到200個特征和大約1500行訓(xùn)練數(shù)據(jù)集。在看過累積方差的百分比的表格后,我們決定留下150個核心元素。

 

 

圖片說明:方差累積百分比

并不是所有調(diào)整都能優(yōu)化結(jié)果。在我們用PCA操作后,交叉驗證的分?jǐn)?shù)并沒有提高,甚至惡化了(從0.91降到了0.87)。我們相信是降維時,也去掉了一些關(guān)鍵信息。PCA 不僅去掉了隨機(jī)出現(xiàn)的噪音,也去掉了有價值的信息。

PCA + 多元線性回歸

對于多元線性回歸,我們的pipeline 包括:

1 特征縮放,使用了scikit-learn 的python包

2 降維,使用PCA(留下了150個主要的成分)

使用多元線性回歸的PCA 也沒有帶來好的結(jié)果。交叉驗證的分?jǐn)?shù)并沒有提高,甚至惡化了。

模型比較

XG Boost 是表現(xiàn)最好的模型,多元線性回歸表現(xiàn)最差,其他模型的結(jié)果差不多。

 

 

圖片說明:各個模型對比

使用單獨某一個模型都能讓我們得到不錯的結(jié)果。但是,通常來說,真實生活中的問題并沒有一種線性或者非線性的關(guān)系,可以讓我們用一個單獨的模型來重現(xiàn)。把保守和激進(jìn)、線性和非線性的模型結(jié)合起來,才能最好地呈現(xiàn)房價預(yù)測這個問題。

融合(stacking 和 ensembling)

我們先嘗試了一個簡單的合模型(ensembling),以50-50的比例將 XGBoost(非線性)和ENet(線性)組合在一起。

接下來,我們按照模型融合(stacking)的基本方法,又嘗試了多個不同模型,來看哪個效果最好。下圖記錄了這些不同模型的表現(xiàn)情況。

 

 

結(jié)論

下面的相關(guān)性熱點圖展示了我們不同模型的預(yù)測價格?梢钥吹,彈性網(wǎng)絡(luò),Lasso和Ridge本質(zhì)上很相似,而兩種融合方式也彼此很像。與其他都明顯不同的是 XGBoost 模型。

 

 

圖片說明:模型成績

未來可研究方向

1 研究自變量之間的相關(guān)性

2 嘗試更多的特征工程

3 使用聚類分析來創(chuàng)造更多新的特征

4 對不同模型使用不同的特征選擇方法:在線性模型中拋棄掉特定的特征,而在樹形模型中保持大多數(shù)的特征。

(以上內(nèi)容編譯自紐約數(shù)據(jù)科學(xué)院博客Predicting House Prices with Machine Learning Algorithms,僅代表作者觀點)

Yulia Norenko 有5年的金融從業(yè)經(jīng)驗,曾在多家知名券商擔(dān)任分析師職務(wù)。他擁有紐約大學(xué)和莫斯科大學(xué)的碩士學(xué)位。

Howard Chang畢業(yè)于石溪大學(xué)數(shù)學(xué)專業(yè)。他曾在管理數(shù)十億美元的對沖基金工作。

Lavanya Gupta畢業(yè)于安巴尼信息與通信技術(shù)研究所,目前就職于匯豐銀行,擔(dān)任軟件工程師。

Silvia Lu目前在紐約和新澤西地區(qū)空港管理部門實習(xí),擔(dān)任數(shù)據(jù)分析師職務(wù),她擁有紐約大學(xué)的心理學(xué)專業(yè)碩士學(xué)位。

標(biāo)簽: 金融 數(shù)據(jù)分析 通信 網(wǎng)絡(luò)

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:為什么你不應(yīng)該成為一名數(shù)據(jù)科學(xué)通才

下一篇:云計算、大數(shù)據(jù)、人工智能的關(guān)系