Python愛(ài)彼迎Airbnb新用戶體驗(yàn)數(shù)據(jù)XGBoost、隨機(jī)森林預(yù)測(cè)
全文鏈接:http://tecdat.cn/?p=32380
原文出處:拓端數(shù)據(jù)部落公眾號(hào)
分析師:Zhuhua Huang
在多項(xiàng)用戶數(shù)據(jù)中尋找與預(yù)測(cè)值相關(guān)的屬性。查看各個(gè)特征的分布與特征之間的關(guān)聯(lián)。分析用戶數(shù)據(jù),查看特定人群的使用習(xí)慣進(jìn)行產(chǎn)品優(yōu)化。最后選擇合適的模型與參數(shù)來(lái)進(jìn)行預(yù)測(cè)。
解決方案
任務(wù)/目標(biāo)
根據(jù)愛(ài)彼迎的2009-2014年的用戶數(shù)據(jù),預(yù)測(cè)用戶第一次預(yù)約的目的地城市。同時(shí)分析用戶的行為習(xí)慣。
?
數(shù)據(jù)源準(zhǔn)備?:
數(shù)據(jù)源包含訓(xùn)練集用戶數(shù)據(jù)與測(cè)試集用戶數(shù)據(jù),用戶數(shù)據(jù)包含id, 性別,年齡,創(chuàng)建賬戶時(shí)間,第一次預(yù)定時(shí)間,目的地城市(需預(yù)測(cè)值)等。
首先將訓(xùn)練集數(shù)據(jù)與測(cè)試集數(shù)據(jù)整合在一起。查看數(shù)據(jù)并清洗數(shù)據(jù),處理臟值?。?將年齡中的離群值(<18 或 >100)刪除。
特征轉(zhuǎn)換?:
通過(guò)畫(huà)圖(柱狀圖,箱形圖)直觀展示每個(gè)特征的分布情況和該特征對(duì)于預(yù)測(cè)值的影響。

圖表 1 性別分布

圖表 2 性別與預(yù)測(cè)值的關(guān)系

圖表3 App使用種類(lèi)與目標(biāo)城市的分布
?
通過(guò)分析,將無(wú)意義的特征值刪除,如用戶id,第一次激活時(shí)間等。
將分類(lèi)數(shù)據(jù)(性別,語(yǔ)言,使用的設(shè)備類(lèi)型)進(jìn)行獨(dú)熱編碼。
并將時(shí)間類(lèi)型數(shù)據(jù)轉(zhuǎn)化成年,月,日變量。尋找不同月份與賬號(hào)創(chuàng)建的關(guān)聯(lián)。

圖表4 2013年每月賬號(hào)創(chuàng)建統(tǒng)計(jì)

?圖表5 2013年每月目的地城市分析
構(gòu)造
以上說(shuō)明了如何抽取相關(guān)特征,我們大致有如下訓(xùn)練樣本(只列舉部分特征)。

劃分訓(xùn)練集和測(cè)試集
為了證實(shí)模型的準(zhǔn)確性,將訓(xùn)練集中的數(shù)據(jù)再分為訓(xùn)練集和測(cè)試集。當(dāng)賬戶創(chuàng)造時(shí)間為2014年以前時(shí),數(shù)據(jù)為訓(xùn)練集,2014年為測(cè)試集。
建模
XGBoost:
高效地實(shí)現(xiàn)了GBDT算法并進(jìn)行了算法和工程上的許多改進(jìn),其原理是不斷地添加樹(shù),每次添加一個(gè)樹(shù)會(huì)學(xué)習(xí)一個(gè)新函數(shù)f(x),并擬合上次預(yù)測(cè)的殘差。
當(dāng)我們訓(xùn)練完成得到k棵樹(shù),我們要預(yù)測(cè)一個(gè)樣本的分?jǐn)?shù),其實(shí)就是根據(jù)這個(gè)樣本的特征,在每棵樹(shù)中會(huì)落到對(duì)應(yīng)的一個(gè)葉子節(jié)點(diǎn),每個(gè)葉子節(jié)點(diǎn)就對(duì)應(yīng)一個(gè)分?jǐn)?shù)
最后只需要將每棵樹(shù)對(duì)應(yīng)的分?jǐn)?shù)加起來(lái)就是該樣本的預(yù)測(cè)值。
最后選取概率最大的預(yù)測(cè)值作為預(yù)測(cè)結(jié)果。
隨機(jī)森林:
隨機(jī)森林是一種集成學(xué)習(xí),通過(guò)建立幾個(gè)模型組合的來(lái)解決單一預(yù)測(cè)問(wèn)題。它的工作原理是生成多個(gè)分類(lèi)器/模型,各自獨(dú)立地學(xué)習(xí)和作出預(yù)測(cè)。這些預(yù)測(cè)最后結(jié)合成單預(yù)測(cè),因此優(yōu)于任何一個(gè)單分類(lèi)的做出預(yù)測(cè)。它依靠于決策樹(shù)的投票選擇來(lái)決定最后的分類(lèi)結(jié)果。
模型優(yōu)化
1.特征提取,樣本抽樣,參數(shù)調(diào)參。
通過(guò)圖像可以看出,部分目標(biāo)城市在某些月份觀光量增多。
年紀(jì)較長(zhǎng)(40+)的人群更傾向于去US。
未填寫(xiě)性別信息的人更傾向于不預(yù)定。
使用英語(yǔ)為母語(yǔ)的人群相較于其他人群更傾向于去US。
大多數(shù)用戶更傾向于使用web進(jìn)行操作,也有一部分使用ios系統(tǒng)操作。
可以向年長(zhǎng)人群與母語(yǔ)為英語(yǔ)人群更多的推薦US的住宿信息,其他人群則多樣化的推廣。
優(yōu)化ios,安卓等系統(tǒng)上的產(chǎn)品,以此獲得更多用戶。
通過(guò)使用XGBoost來(lái)進(jìn)行預(yù)測(cè),最終得到準(zhǔn)確率為0.628
通過(guò)使用隨機(jī)森林來(lái)進(jìn)行預(yù)測(cè),最終得到準(zhǔn)確率為0.749
可以得出使用隨即森林算法比XGBoost準(zhǔn)確性更高。
輸出/預(yù)測(cè)結(jié)果(部分):

關(guān)于作者
在此對(duì)Zhuhua Huang對(duì)本文所作的貢獻(xiàn)表示誠(chéng)摯感謝,她在西交利物浦大學(xué)完成了信息與計(jì)算科學(xué)學(xué)位。擅長(zhǎng)數(shù)據(jù)采集與處理。

最受歡迎的見(jiàn)解
1.PYTHON用戶流失數(shù)據(jù)挖掘:建立邏輯回歸、XGBOOST、隨機(jī)森林、決策樹(shù)、支持向量機(jī)、樸素貝葉斯模型和KMEANS聚類(lèi)用戶畫(huà)像
2.R語(yǔ)言基于樹(shù)的方法:決策樹(shù),隨機(jī)森林
3.python中使用scikit-learn和pandas決策樹(shù)
4.機(jī)器學(xué)習(xí):在SAS中運(yùn)行隨機(jī)森林?jǐn)?shù)據(jù)分析報(bào)告
5.R語(yǔ)言用隨機(jī)森林和文本挖掘提高航空公司客戶滿意度
6.機(jī)器學(xué)習(xí)助推快時(shí)尚精準(zhǔn)銷(xiāo)售時(shí)間序列
7.用機(jī)器學(xué)習(xí)識(shí)別不斷變化的股市狀況——隱馬爾可夫模型的應(yīng)用
8.python機(jī)器學(xué)習(xí):推薦系統(tǒng)實(shí)現(xiàn)(以矩陣分解來(lái)協(xié)同過(guò)濾)
9.python中用pytorch機(jī)器學(xué)習(xí)分類(lèi)預(yù)測(cè)銀行客戶流失