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

(二)天氣:觀察數(shù)據(jù)特征發(fā)現(xiàn),其中“weather_code”列各類別分別為:1 =晴朗;大致清晰,但有一些值與霧霾/霧/霧斑/霧附近;2 =散云/一些云;3 =碎云/云層疏松;4 =多云;7 =雨/小雨陣雨/小雨;10 =雨與雷暴;26 =降雪;94 =凍霧。因此,本文對“weather_code”進行重新定義,將?1,2,3,4?類天氣現(xiàn)象定義為宜騎車天氣;7,10,26,94?類天氣現(xiàn)象定義為不宜騎車天氣。
(三)共享單車借用數(shù)量:“節(jié)假日”與“雙休日”中共享單車使用數(shù)量的分布較為相似,高峰期均在午后。對比發(fā)現(xiàn),“工作日”中單車使用數(shù)量的高峰期在?7?點至?9?點,16?點到?19?點這兩個時間段呈現(xiàn)為兩個明顯的波峰,這兩個時間段往往是上班下班時間,人流量比較大,因而數(shù)據(jù)的呈現(xiàn)比較符合實際的規(guī)律。因此,絕對將“is_holiday”列與“is_weekend”列聯(lián)合進行分組,合并為“is_non_workday”,分為工作組與非工作日組。

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

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

關(guān)于作者

在此對Yiyi Hu對本文所作的貢獻表示誠摯感謝,她畢業(yè)于上海財經(jīng)大學,專長時間序列預測、回歸分析、多元統(tǒng)計、數(shù)據(jù)清洗、處理及可視化、基礎(chǔ)機器學習模型以及集成模型。

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