李 福 徐良杰 朱然博 羅浩順 陳國俊
(武漢理工大學(xué)交通學(xué)院1) 武漢 430063) (湖北文理學(xué)院汽車與交通工程學(xué)院2) 襄陽 441053)
共享單車的出現(xiàn)有效地彌補(bǔ)了公共交通難以實(shí)現(xiàn)“最后一公里”的出行的不足,為城市居民的出行提供了極大的便捷.共享單車快速發(fā)展的同時(shí)也帶來了一系列的問題,其中最為嚴(yán)重的是用戶亂停亂放和部分地點(diǎn)單車堆積,造成后者出現(xiàn)的主要原因是區(qū)域內(nèi)的共享單車供需的不平衡[1].通過對(duì)共享單車用戶的借車需求量的精準(zhǔn)預(yù)測(cè),有助于實(shí)現(xiàn)共享單車的供給與用戶需求的相匹配.
共享單車興起時(shí),武漢市交通發(fā)展戰(zhàn)略研究院根據(jù)活躍度對(duì)武漢市的共享單車的需求總量進(jìn)行了預(yù)估,精度較低.當(dāng)前共享單車的需求預(yù)測(cè)的研究大多采用機(jī)器學(xué)習(xí)的方法.宋鵬等[2]通過主成分分析法對(duì)數(shù)據(jù)進(jìn)行降維,驗(yàn)證了基于徑向基核函數(shù)支持向量機(jī)對(duì)共享單車需求的預(yù)測(cè)具有較好的效果,平方相關(guān)系數(shù)可達(dá)到0.968.曹旦旦等[3]為了準(zhǔn)確預(yù)測(cè)每小時(shí)的共享單車的使用需求,采用長短期記憶神經(jīng)網(wǎng)絡(luò)模型對(duì)紐約市Citi Bike共享單車的需求量進(jìn)行了預(yù)測(cè).種穎珊等[4]基于隨機(jī)森林和時(shí)空聚類對(duì)美國灣區(qū)的共享單車的需求量進(jìn)行了預(yù)測(cè).國外共享單車的運(yùn)營模式雖然與國內(nèi)的存在一定的差異,但關(guān)于共享單車的需求預(yù)測(cè)的研究仍具有參考價(jià)值.Campbell等[5]采用最小二乘法、線性模型等多種方法對(duì)單車需求量進(jìn)行預(yù)測(cè).Xu等[6]采用深度學(xué)習(xí)和大數(shù)據(jù)的方法.Pan等[7]采用了遞歸神經(jīng)網(wǎng)絡(luò)模型.Almannaa等[8]分別采用機(jī)器學(xué)習(xí)中不同模型的進(jìn)行了預(yù)測(cè).
綜上所述,機(jī)器學(xué)習(xí)算法被廣泛運(yùn)用于共享單車的需求量的預(yù)測(cè).但所預(yù)測(cè)的對(duì)象大多是某個(gè)城市或片區(qū)的整體用戶的使用需求,對(duì)某個(gè)站點(diǎn)的使用需求涉及較少,研究重點(diǎn)往往放在了大數(shù)據(jù)的降維、消噪等處理步驟上,而忽略了對(duì)共享單車用戶的使用需求的影響因素的分析.因此,文中基于XGBoost的機(jī)器學(xué)習(xí)算法,通過紐約市的Citi Bike共享單車用戶的歷史訂單數(shù)據(jù),分析影響用戶的使用需求的主要因素,由此建立基于機(jī)器學(xué)習(xí)的預(yù)測(cè)模型,最后以北京市摩拜單車的用戶訂單數(shù)據(jù)為例,對(duì)具體站點(diǎn)的共享單車的借車需求量進(jìn)行預(yù)測(cè),驗(yàn)證預(yù)測(cè)方法的可行性.
極端梯度推進(jìn)決策樹(extreme gradient boosting tree, XGBoost)是一種基于決策樹的集成機(jī)器學(xué)習(xí)算法,使用梯度上升框架,在GBDT(gradient boosting decision tree)算法基礎(chǔ)上改進(jìn)而來,適用于分類和回歸問題.XGBoost在傳統(tǒng)Boosting的基礎(chǔ)上,引入正則化項(xiàng)的邏輯回歸和線性回歸,對(duì)代價(jià)函數(shù)做了二階Talor展開,能自動(dòng)學(xué)習(xí)分裂方向且支持列抽樣,防止過擬合.上述優(yōu)點(diǎn)使得XGBoost成為各類回歸預(yù)測(cè)中的較為合適手段[9],其預(yù)測(cè)模型為
(1)
損失函數(shù)為
(2)
XGBoost將模型上次預(yù)測(cè)(由t-1棵樹組合而成的模型)產(chǎn)生的誤差作為參考進(jìn)行下一棵樹(第t棵樹)的建立.當(dāng)往模型中加入第t棵樹時(shí),預(yù)測(cè)結(jié)果為
(3)
(4)
對(duì)于目標(biāo)損失函數(shù)中的正則項(xiàng)部分,第t棵決策樹的正則項(xiàng)為
(5)
式中:wj為第j個(gè)樹子節(jié)點(diǎn)的得分值;T為數(shù)的子節(jié)點(diǎn)的個(gè)數(shù).
用泰勒展開式來近似原來的損失函數(shù).
(6)
(7)
對(duì)wj求偏導(dǎo),使其導(dǎo)函數(shù)為0,則有:
(8)
則預(yù)測(cè)模型的目標(biāo)函數(shù)為
(9)
當(dāng)前開源的且齊全的共享單車大數(shù)據(jù)為紐約市某區(qū)域的Citi Bike的用戶訂單數(shù)據(jù),原始數(shù)據(jù)集記錄了24個(gè)月的用戶每小時(shí)借車數(shù)量,包含時(shí)間、季節(jié)、節(jié)假日、工作日、天氣、實(shí)際溫度、體感溫度、相對(duì)濕度、風(fēng)速等數(shù)據(jù).采用Python工具包讀取數(shù)據(jù)集,刪除其中的缺失值與異常值后,共17 357條數(shù)據(jù).
對(duì)數(shù)據(jù)歸一化后,分析時(shí)間、季節(jié)、節(jié)假日、工作日、天氣、實(shí)際溫度、體感溫度、相對(duì)濕度、風(fēng)速等環(huán)境因素對(duì)用戶借車數(shù)的影響.其中溫度、相對(duì)濕度與風(fēng)速為連續(xù)變化特征,通過不同的溫度、相對(duì)濕度與風(fēng)速下的共享單車的借車數(shù)量的分布,分析上述因素與借車數(shù)間的相關(guān)性;不同實(shí)際溫度、體感溫度、相對(duì)濕度、風(fēng)速的下的每小時(shí)的共享單車借車數(shù)量分布見圖1.
圖1 不同連續(xù)變化特征下共享單車借車數(shù)量分布
由圖1可知:在氣溫較低時(shí),隨著氣溫的升高,共享單車的借車數(shù)量增加,當(dāng)氣溫較高時(shí),隨著氣溫的上升,共享單車的借車數(shù)量減少.同時(shí),共享單車的借車數(shù)量在不同的實(shí)際溫度與體感溫度下的分布相似,則兩個(gè)因素對(duì)共享單車的借車數(shù)的影響機(jī)理相同,單一的因素即可反應(yīng)氣溫對(duì)借車數(shù)的影響.共享單車用戶的借車集中分布在相對(duì)濕度為0.2~0.9的范圍內(nèi),且在該范圍內(nèi)共享單車的借車數(shù)量變化不顯著.隨著風(fēng)速的上升,共享單車的借車數(shù)量減少.因此,氣溫、風(fēng)速與共享單車的借車數(shù)量之間存在著相關(guān)性,相對(duì)濕度變化與不影響共享單車的借車數(shù)量.
時(shí)間、季節(jié)、節(jié)假日、工作日與天氣為離散特征,不具有連續(xù)性,則采用統(tǒng)計(jì)分析的方式分析是否具有相關(guān)性.每日不同時(shí)間、1周不同時(shí)間、不同季節(jié)、不同天氣下的每小時(shí)的共享單車借車數(shù)量見圖2.
圖2 不同離散變化特征下共享單車借車數(shù)量分布
由圖2可知,共享單車的借車數(shù)量在1 d內(nèi)有著較為明顯的波動(dòng),呈現(xiàn)明顯的早晚高峰;周一周日的平均每小時(shí)的用戶借車量的分布相近,但周一到周五的借車量的極大值均顯著大于周六與周日,而上四分位數(shù)低于周六與周日,1周內(nèi)星期的變化仍會(huì)影響共享單車用戶的借車需求;在1年內(nèi),春季的借車量最小,秋季最大;天氣的變化對(duì)于共享單車的借車數(shù)量的影響較為顯著,用戶的借車需求大多發(fā)生在晴天和陰天,雨雪及惡劣天氣的需求量極少;同時(shí)統(tǒng)計(jì)發(fā)現(xiàn),工作日的平均每天借車量為4 592輛,非工作日為4 330輛.因此,每日時(shí)間、1周時(shí)間、季節(jié)、天氣均與每小時(shí)的共享單車的借車數(shù)量之間存在著相關(guān)性.
選用北京市摩拜單車的用戶歷史騎行訂單數(shù)據(jù),采用均值漂移聚類算法,對(duì)用戶的騎行起點(diǎn)進(jìn)行聚類.算法的均值漂移向量mh(x)為
(10)
式中:h為滑動(dòng)窗口半徑;x為初始中心點(diǎn);M為需聚類的所有點(diǎn)的集合;G(x)為核函數(shù),常用為高斯核函數(shù);,為點(diǎn)xi的權(quán)重值.此次研究中的用戶騎行起訖點(diǎn)OD樣本為二維空間數(shù)據(jù),無需引入高斯核函數(shù),且空間內(nèi)每個(gè)分布點(diǎn)的選取權(quán)重相同,則均值漂移向量化簡為
(11)
式中:mh為離中心點(diǎn)距離為h的空間內(nèi)所有點(diǎn)的集合.選取滑動(dòng)窗口半徑為200 m,對(duì)北京市部分區(qū)域的摩拜單車的用戶騎行起點(diǎn)進(jìn)行聚類.
北京市摩拜單車的用戶訂單數(shù)據(jù)集記錄了用戶的租借車的時(shí)間和位置信息,以每小時(shí)為時(shí)間間隔,統(tǒng)計(jì)各個(gè)聚集區(qū)的每小時(shí)的用戶借車數(shù)量.消除數(shù)據(jù)集中無效和波動(dòng)異常的數(shù)據(jù).常用的數(shù)據(jù)去噪方法有K-近鄰替換法、局部加權(quán)替換法、有序最近鄰替換法、均值法等,由于共享單車的借車量在1 d內(nèi)存在明顯的早晚高峰,且峰值持續(xù)時(shí)間較短,每小時(shí)的借車量存在較大波動(dòng),見圖3a).因此,采用上述降噪方法對(duì)數(shù)據(jù)消噪時(shí),受前后數(shù)據(jù)的影響,數(shù)據(jù)中的極值容易受到削減而失去數(shù)據(jù)集的原有特征.
圖3a)中的用戶借車數(shù)量具有明顯的周期變化的特征,該類型數(shù)據(jù)常用小波變換進(jìn)行降噪.小波變換是時(shí)間(空間)頻率的局部化分析,它通過伸縮平移運(yùn)算對(duì)信號(hào)逐步進(jìn)行多尺度細(xì)化,最終達(dá)到高頻處時(shí)間細(xì)分,低頻處頻率細(xì)分,能自動(dòng)適應(yīng)時(shí)頻信號(hào)分析的要求,從而可聚焦到信號(hào)的任意細(xì)節(jié),適用于分析非平穩(wěn)的周期性信號(hào),如心電圖、音頻信號(hào)等,提取信號(hào)的局部特征.采用小波變換降噪對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,消除異常的噪聲值,突顯用戶需求量的整體趨勢(shì),降噪后的摩拜單車用戶借車數(shù)量見圖3b).
圖3 北京市某區(qū)域的14日的摩拜單車用戶借車數(shù)量
進(jìn)行根據(jù)上述的因素分析中的對(duì)共享單車的借車需求量存在相關(guān)性的環(huán)境特征,選取氣溫、風(fēng)速、天氣、小時(shí)、星期、季節(jié)、工作日與否為影響因素,查詢中國氣象網(wǎng)獲取當(dāng)日的北京市天氣數(shù)據(jù).數(shù)據(jù)集的時(shí)間跨度較短,因此不考慮季節(jié)對(duì)于借車需求量的影響.由于不同影響因素的數(shù)據(jù)屬性之間的量級(jí)不同,量級(jí)大的數(shù)據(jù)屬性會(huì)對(duì)預(yù)測(cè)模型產(chǎn)生大的影響而掩蓋了其他影響因素對(duì)于借車需求量的影響,不符合實(shí)際情況,因此需要統(tǒng)一各屬性量級(jí).采用離差標(biāo)準(zhǔn)化對(duì)數(shù)據(jù)集進(jìn)行歸一化處理,處理方法為
(12)
將預(yù)處理后的用戶訂單數(shù)據(jù)集分為訓(xùn)練集與測(cè)試集兩部分,使用Python中的sklearn工具包構(gòu)建預(yù)測(cè)模型,調(diào)整模型參數(shù)后,利用XGBoost模型對(duì)北京市分鐘寺和公益西橋區(qū)域的5月10日(周三)和5月14日(周日)的每小時(shí)的用戶借車數(shù)量進(jìn)行預(yù)測(cè),預(yù)測(cè)結(jié)果見圖4.
圖4 共享單車借車需求量預(yù)測(cè)結(jié)果
由圖4可知,使用氣溫、風(fēng)速、天氣、小時(shí)、星期、季節(jié)、工作日與否為影響因素,對(duì)某區(qū)域的共享單車用戶的每小時(shí)的借車需求量有著較好的預(yù)測(cè)效果,且對(duì)于不同區(qū)域以及工作日和非工作日均能進(jìn)行有效的預(yù)測(cè).同時(shí)使用支持向量機(jī)SVM中的linear核函數(shù)、poly核函數(shù)、rbf核函數(shù)和sigmoid核函數(shù)對(duì)用戶的借車需求量進(jìn)行預(yù)測(cè),使用平均絕對(duì)誤差MAE和平方相關(guān)系數(shù)R2并用數(shù)據(jù)集中的實(shí)際數(shù)據(jù)進(jìn)行模型的預(yù)測(cè)精度評(píng)估.平均絕對(duì)誤差MAE和R2的計(jì)算方法為
(13)
(14)
表1 不同預(yù)測(cè)模型的預(yù)測(cè)效果
由表1可知,使用XGBoost預(yù)測(cè)模型的對(duì)共享單車用戶的借車需求量的進(jìn)行預(yù)測(cè),其預(yù)測(cè)結(jié)果的平均絕對(duì)誤差最小,為3.9,平方相關(guān)系數(shù)可達(dá)到0.94;在SVM預(yù)測(cè)模型中,使用linear核函數(shù)的預(yù)測(cè)效果最好,平均絕對(duì)誤差為4.3,平方相關(guān)系數(shù)為0.92,但仍低于XGBoost預(yù)測(cè)模型的預(yù)測(cè)效果.在預(yù)測(cè)耗時(shí)方面,使用XGBoost預(yù)測(cè)模型的預(yù)測(cè)時(shí)長最大,為0.87 s,使用SVM預(yù)測(cè)模型中不同核函數(shù)的用時(shí)均低于XGBoost預(yù)測(cè)模型.在進(jìn)行整個(gè)北京市的共享單車需求量預(yù)測(cè)時(shí),由于數(shù)據(jù)量巨大,因此在選擇預(yù)測(cè)模型時(shí)對(duì)模型的預(yù)測(cè)耗時(shí)有著一定的要求,針對(duì)某具體區(qū)域進(jìn)行共享單車的借車需求量預(yù)測(cè)時(shí),數(shù)據(jù)量較小,則更看重預(yù)測(cè)模型的預(yù)測(cè)精度.因此,使用XGBoost預(yù)測(cè)模型可以較好進(jìn)行具體區(qū)域的共享單車的借車需求量預(yù)測(cè),且預(yù)測(cè)精度較linear核函數(shù)、poly核函數(shù)、rbf核函數(shù)和sigmoid核函數(shù)的SVM預(yù)測(cè)模型的預(yù)測(cè)精度更高.
文中提出了一種基于極端梯度推進(jìn)決策樹(XGBoost)算法的共享單車的借車需求量的預(yù)測(cè)方法,通過對(duì)紐約市的Citi Bike共享單車用戶的歷史訂單數(shù)據(jù)的處理挖掘,分析發(fā)現(xiàn),在眾多的影響素中,氣溫、風(fēng)速、天氣、每日時(shí)間、1周時(shí)間、季節(jié)與共享單車的借車數(shù)量之間存在著相關(guān)性.以北京市的摩拜單車為例,對(duì)其用戶的歷史騎行訂單數(shù)據(jù),采用均值漂移聚類算法劃分用戶騎行的聚集區(qū),對(duì)數(shù)據(jù)進(jìn)行降噪和歸一化處理后,對(duì)北京市分鐘寺和公益西橋區(qū)域的用戶借車需求量進(jìn)行預(yù)測(cè),平均絕對(duì)誤差為3.9,平方相關(guān)系數(shù)可達(dá)到0.94,相比SVM預(yù)測(cè)模型預(yù)測(cè)精度更高.結(jié)果表明,使用XGBoost算法結(jié)合天氣和時(shí)間因素以及歷史數(shù)據(jù),可實(shí)現(xiàn)對(duì)某區(qū)域的每小時(shí)的共享單車用戶借車量的有效預(yù)測(cè).
通過XGBoost算法構(gòu)建的預(yù)測(cè)模型在預(yù)測(cè)精度方面優(yōu)于SVM預(yù)測(cè)模型,但在預(yù)測(cè)耗時(shí)上存在不足,因此當(dāng)所需預(yù)測(cè)的區(qū)域的數(shù)量較大時(shí),論文所提出的預(yù)測(cè)模型的預(yù)測(cè)耗時(shí)較長.論文中所使用的數(shù)據(jù)集為用戶的騎行訂單數(shù)量,未涉及共享單車的實(shí)時(shí)分布數(shù)據(jù),忽略了共享單車的供給對(duì)于用戶騎行需求的影響,因此預(yù)測(cè)結(jié)果與用戶的實(shí)際需求存在一定的偏差,相關(guān)研究可在下一階段進(jìn)一步展開.