共享單車需求量數(shù)據(jù)用CART決策樹、隨機(jī)森林以及XGBOOST算法登記分類及影響因素分析|附
全文鏈接:http://tecdat.cn/?p=28519
作者:Yiyi Hu
最近我們被客戶要求撰寫關(guān)于共享單車的研究報(bào)告,包括一些圖形和統(tǒng)計(jì)輸出。
近年來(lái),共享經(jīng)濟(jì)成為社會(huì)服務(wù)業(yè)內(nèi)的一股重要力量。作為共享經(jīng)濟(jì)的一個(gè)代表性行業(yè),共享單車快速發(fā)展,成為繼地鐵、公交之后的第三大公共出行方式
但與此同時(shí),它也面臨著市場(chǎng)需求不平衡、車輛亂停亂放、車輛檢修調(diào)度等問題。本項(xiàng)目則著眼于如何不影響市民出行效率的同時(shí),對(duì)共享單車進(jìn)行合理的批量維修工作的問題,利用CART決策樹、隨機(jī)森林以及Xgboost算法對(duì)共享單車借用數(shù)量進(jìn)行等級(jí)分類,試圖通過(guò)模型探究其影響因素并分析在何種條件下對(duì)共享單車進(jìn)行批量維修為最優(yōu)方案。
解決方案
任務(wù)/目標(biāo)
通過(guò)機(jī)器學(xué)習(xí)分類模型探究共享單車借用數(shù)量的影響因素,并分析在何種條件下對(duì)共享單車進(jìn)行批量維修為最優(yōu)方案。
數(shù)據(jù)源準(zhǔn)備
該數(shù)據(jù)集有三個(gè)數(shù)據(jù)來(lái)源,分別為交通局,天氣數(shù)據(jù),以及法定假期。
解決方案
任務(wù)/目標(biāo)
通過(guò)機(jī)器學(xué)習(xí)分類模型探究共享單車借用數(shù)量的影響因素,并分析在何種條件下對(duì)共享單車進(jìn)行批量維修為最優(yōu)方案。
數(shù)據(jù)預(yù)處理及可視化
(一)時(shí)間:首先從“timestamp”列中提取了“month”和“hour”兩列,試圖分別從整體、季度、月份、小時(shí)四個(gè)方面,對(duì)共享單車借用總數(shù)進(jìn)行箱圖分析。

(二)天氣:觀察數(shù)據(jù)特征發(fā)現(xiàn),其中“weather_code”列各類別分別為:1 =晴朗;大致清晰,但有一些值與霧霾/霧/霧斑/霧附近;2 =散云/一些云;3 =碎云/云層疏松;4 =多云;7 =雨/小雨陣雨/小雨;10 =雨與雷暴;26 =降雪;94 =凍霧。因此,本文對(duì)“weather_code”進(jìn)行重新定義,將 1,2,3,4 類天氣現(xiàn)象定義為宜騎車天氣;7,10,26,94 類天氣現(xiàn)象定義為不宜騎車天氣。
點(diǎn)擊標(biāo)題查閱往期內(nèi)容

單車上的城市:共享單車數(shù)據(jù)洞察

左右滑動(dòng)查看更多

01

02

03

04

(三)共享單車借用數(shù)量:“節(jié)假日”與“雙休日”中共享單車使用數(shù)量的分布較為相似,高峰期均在午后。對(duì)比發(fā)現(xiàn),“工作日”中單車使用數(shù)量的高峰期在 7 點(diǎn)至 9 點(diǎn),16 點(diǎn)到 19 點(diǎn)這兩個(gè)時(shí)間段呈現(xiàn)為兩個(gè)明顯的波峰,這兩個(gè)時(shí)間段往往是上班下班時(shí)間,人流量比較大,因而數(shù)據(jù)的呈現(xiàn)比較符合實(shí)際的規(guī)律。因此,絕對(duì)將“is_holiday”列與“is_weekend”列聯(lián)合進(jìn)行分組,合并為“is_non_workday”,分為工作組與非工作日組。

(四)溫度:圖 5-4 為各變量之間的相關(guān)系數(shù)矩陣,發(fā)現(xiàn)溫度“t1”列與體感溫度“t2”列之間存在較高的相關(guān)性,且天氣溫度數(shù)據(jù)更加客觀,因此選擇僅保留“t1”列。各個(gè)變量之間的均呈現(xiàn)中弱相關(guān)性。此外,各變量與因變量“count_log”列均存在一定的相關(guān)性,但相關(guān)強(qiáng)度不一。

(五)經(jīng)觀察“count_log”箱圖發(fā)現(xiàn),該數(shù)據(jù)仍存在著少量異常值。因此,為了提高結(jié)果的準(zhǔn)確性,選擇刪去 16 個(gè)過(guò)低的數(shù)值,剩余 17398 組數(shù)據(jù)。
在進(jìn)行預(yù)處理后,本文已經(jīng)對(duì)共享單車中的變量進(jìn)行了篩選與調(diào)整,保留了 hour,t1,is_non_workday,weather_code,wind_speed,hum,season 等 7 個(gè)特征變量。在正 式建立模型之前,對(duì)于因變量“count_log”進(jìn)行等頻分箱,將其分成了五類,命名為 category。當(dāng)保證類別平衡,即每類數(shù)據(jù)的樣本量接近,算法會(huì)有更好的效果。對(duì)于溫度、濕度等連續(xù)性變量,為使得最后結(jié)果的準(zhǔn)確性,并未對(duì)其進(jìn)行分箱。
接下來(lái),本文對(duì)所有的特征變量進(jìn)行了歸一化處理,為了歸納統(tǒng)一樣本的統(tǒng)計(jì)分布性, 本文選取 75%的數(shù)據(jù)劃分為訓(xùn)練集,25%的數(shù)據(jù)作為測(cè)試集。
建模
CART決策樹:
CART 算法易于理解和實(shí)現(xiàn),人們?cè)谕ㄟ^(guò)解釋后都有能力去理解決策樹所表達(dá)的意義。并且能夠同時(shí)處理分類型與數(shù)值型屬性且對(duì)缺失值不敏感。
隨機(jī)森林:
使用隨機(jī)森林模型在進(jìn)行分類時(shí),需要現(xiàn)在經(jīng)過(guò)訓(xùn)練的決策樹中輸入測(cè)試樣本,這棵決策樹的分類便可以由各葉子節(jié)點(diǎn)的輸出結(jié)果而確定;再根據(jù)所有決策樹的分類結(jié)果,從而求得隨機(jī)森林對(duì)測(cè)試樣本的最終評(píng)價(jià)結(jié)果。
使用自助法隨機(jī)地抽樣得到?jīng)Q策樹的輸入樣本和選取最佳的分割標(biāo)準(zhǔn)在決策樹的節(jié)點(diǎn)上隨機(jī)地選取特征進(jìn)行分割是隨機(jī)森林的兩大優(yōu)點(diǎn),正是這些優(yōu)勢(shì)使得隨機(jī)森林具備了良好的容忍噪聲的能力,且使得決策樹之間的相關(guān)性有所降低。隨機(jī)森林中的決策樹還具備了任意生長(zhǎng)但不被修剪的特點(diǎn),因此這些決策樹的偏差較低,有利于提高評(píng)價(jià)的準(zhǔn)確度。
Xgboost:
Xgboost 作為一種新型的集成學(xué)習(xí)方法,優(yōu)點(diǎn)頗多。首先,他在代價(jià)函數(shù)里加入了正則化項(xiàng),用于控制模型的復(fù)雜度,有效防止了過(guò)擬合。其次,Xgboost 支持并行處理,眾所周知,決策樹的學(xué)習(xí)最耗時(shí)的一個(gè)步驟是對(duì)特征的值進(jìn)行排序,Xgboost 在訓(xùn)練之前預(yù)先對(duì)數(shù)據(jù)進(jìn)行了排序,然后保存為 block 結(jié)構(gòu),后面的迭代中重復(fù)使用這個(gè)結(jié)構(gòu),大大減小了計(jì)算量。再次,Xgboost 算法靈活性高,它支持用戶自定義目標(biāo)函數(shù)和評(píng)估函數(shù),只要保證目標(biāo)函數(shù)二階可導(dǎo)即可,并且對(duì)于特征值有缺失的樣本,可以自動(dòng)學(xué)習(xí)出它的分裂方向。最后,Xgboost 先從頂?shù)降捉⑺锌梢越⒌淖訕洌購(gòu)牡椎巾敺聪蜻M(jìn)行剪枝,這樣不容易陷入局部最優(yōu)解。
本文分別利用 CART 決策樹、隨機(jī)森林以及 Xgboost 算法對(duì)共享單車借用數(shù)量進(jìn)行等級(jí)分類,并對(duì)三個(gè)方法進(jìn)行精度測(cè)試,發(fā)現(xiàn)通過(guò) Xgboost 算法分類效果最好,經(jīng)過(guò)調(diào)參后,訓(xùn)練集模型精確度高達(dá) 0.92,測(cè)試集精確度為 0.83。分析分類結(jié)果以及各因素的重要性發(fā)現(xiàn),時(shí)間、風(fēng)速、濕度、溫度四個(gè)因素對(duì)共享單車使用量存在較高的影響,因此維修部門可以選在凌晨階段,或者風(fēng)速較大、溫度過(guò)低或過(guò)高的時(shí)期對(duì)共享單車進(jìn)行合理的批量維修,避開市民用車高峰,保證市民出行效率以及用車安全。

關(guān)于作者
在此對(duì)Yiyi Hu對(duì)本文所作的貢獻(xiàn)表示誠(chéng)摯感謝,她專長(zhǎng)時(shí)間序列預(yù)測(cè)、回歸分析、多元統(tǒng)計(jì)、數(shù)據(jù)清洗、處理及可視化、基礎(chǔ)機(jī)器學(xué)習(xí)模型以及集成模型。

點(diǎn)擊文末?“閱讀原文”
獲取全文數(shù)據(jù)資料。
本文選自《共享單車需求量用CART決策樹、隨機(jī)森林以及XGBOOST算法登記分類及影響因素分析》。

點(diǎn)擊標(biāo)題查閱往期內(nèi)容
數(shù)據(jù)分享|PYTHON用決策樹分類預(yù)測(cè)糖尿病和可視化實(shí)例
樣條曲線、決策樹、Adaboost、梯度提升(GBM)算法進(jìn)行回歸、分類和動(dòng)態(tài)可視化
SAS分類決策樹預(yù)測(cè)貸款申請(qǐng)?jiān)u分剪枝和結(jié)果可視化
分類回歸決策樹交互式修剪和更美觀地可視化分析細(xì)胞圖像分割數(shù)據(jù)集
PYTHON用戶流失數(shù)據(jù)挖掘:建立邏輯回歸、XGBOOST、隨機(jī)森林、決策樹、支持向量機(jī)、樸素貝葉斯和KMEANS聚類用戶畫像
PYTHON集成機(jī)器學(xué)習(xí):用ADABOOST、決策樹、邏輯回歸集成模型分類和回歸和網(wǎng)格搜索超參數(shù)優(yōu)化
Python對(duì)商店數(shù)據(jù)進(jìn)行l(wèi)stm和xgboost銷售量時(shí)間序列建模預(yù)測(cè)分析
PYTHON集成機(jī)器學(xué)習(xí):用ADABOOST、決策樹、邏輯回歸集成模型分類和回歸和網(wǎng)格搜索超參數(shù)優(yōu)化
R語(yǔ)言集成模型:提升樹boosting、隨機(jī)森林、約束最小二乘法加權(quán)平均模型融合分析時(shí)間序列數(shù)據(jù)
Python對(duì)商店數(shù)據(jù)進(jìn)行l(wèi)stm和xgboost銷售量時(shí)間序列建模預(yù)測(cè)分析
R語(yǔ)言用主成分PCA、?邏輯回歸、決策樹、隨機(jī)森林分析心臟病數(shù)據(jù)并高維可視化
R語(yǔ)言基于樹的方法:決策樹,隨機(jī)森林,Bagging,增強(qiáng)樹
R語(yǔ)言用邏輯回歸、決策樹和隨機(jī)森林對(duì)信貸數(shù)據(jù)集進(jìn)行分類預(yù)測(cè)
spss modeler用決策樹神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)ST的股票
R語(yǔ)言中使用線性模型、回歸決策樹自動(dòng)組合特征因子水平
R語(yǔ)言中自編基尼系數(shù)的CART回歸決策樹的實(shí)現(xiàn)
R語(yǔ)言用rle,svm和rpart決策樹進(jìn)行時(shí)間序列預(yù)測(cè)
python在Scikit-learn中用決策樹和隨機(jī)森林預(yù)測(cè)NBA獲勝者
python中使用scikit-learn和pandas決策樹進(jìn)行iris鳶尾花數(shù)據(jù)分類建模和交叉驗(yàn)證
R語(yǔ)言里的非線性模型:多項(xiàng)式回歸、局部樣條、平滑樣條、 廣義相加模型GAM分析
R語(yǔ)言用標(biāo)準(zhǔn)最小二乘OLS,廣義相加模型GAM?,樣條函數(shù)進(jìn)行邏輯回歸LOGISTIC分類
R語(yǔ)言ISLR工資數(shù)據(jù)進(jìn)行多項(xiàng)式回歸和樣條回歸分析
R語(yǔ)言中的多項(xiàng)式回歸、局部回歸、核平滑和平滑樣條回歸模型
R語(yǔ)言用泊松Poisson回歸、GAM樣條曲線模型預(yù)測(cè)騎自行車者的數(shù)量
R語(yǔ)言分位數(shù)回歸、GAM樣條曲線、指數(shù)平滑和SARIMA對(duì)電力負(fù)荷時(shí)間序列預(yù)測(cè)R語(yǔ)言樣條曲線、決策樹、Adaboost、梯度提升(GBM)算法進(jìn)行回歸、分類和動(dòng)態(tài)可視化
如何用R語(yǔ)言在機(jī)器學(xué)習(xí)中建立集成模型?
R語(yǔ)言ARMA-EGARCH模型、集成預(yù)測(cè)算法對(duì)SPX實(shí)際波動(dòng)率進(jìn)行預(yù)測(cè)在python 深度學(xué)習(xí)Keras中計(jì)算神經(jīng)網(wǎng)絡(luò)集成模型R語(yǔ)言ARIMA集成模型預(yù)測(cè)時(shí)間序列分析R語(yǔ)言基于Bagging分類的邏輯回歸(Logistic Regression)、決策樹、森林分析心臟病患者
R語(yǔ)言基于樹的方法:決策樹,隨機(jī)森林,Bagging,增強(qiáng)樹
R語(yǔ)言基于Bootstrap的線性回歸預(yù)測(cè)置信區(qū)間估計(jì)方法
R語(yǔ)言使用bootstrap和增量法計(jì)算廣義線性模型(GLM)預(yù)測(cè)置信區(qū)間
R語(yǔ)言樣條曲線、決策樹、Adaboost、梯度提升(GBM)算法進(jìn)行回歸、分類和動(dòng)態(tài)可視化
Python對(duì)商店數(shù)據(jù)進(jìn)行l(wèi)stm和xgboost銷售量時(shí)間序列建模預(yù)測(cè)分析
R語(yǔ)言隨機(jī)森林RandomForest、邏輯回歸Logisitc預(yù)測(cè)心臟病數(shù)據(jù)和可視化分析
R語(yǔ)言用主成分PCA、?邏輯回歸、決策樹、隨機(jī)森林分析心臟病數(shù)據(jù)并高維可視化
Matlab建立SVM,KNN和樸素貝葉斯模型分類繪制ROC曲線
matlab使用分位數(shù)隨機(jī)森林(QRF)回歸樹檢測(cè)異常值