劉本興
(太原師范學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山西 晉中 030619)
隨著社會(huì)經(jīng)濟(jì)的高速發(fā)展,機(jī)動(dòng)車(chē)保有量和使用頻率激增,導(dǎo)致交通堵塞、事故頻發(fā)以及空氣污染等問(wèn)題,而共享單車(chē)的出現(xiàn)有效緩解了這些問(wèn)題。共享單車(chē)將公共自行車(chē)與互聯(lián)網(wǎng)相結(jié)合,不僅在很大程度上緩解了交通壓力,也為人們公共出行中的“最后一公里”提供了便捷。同時(shí),由于共享單車(chē)具有低碳環(huán)保和使用方便等特性,受到民眾的普遍歡迎。
共享單車(chē)在給人們帶來(lái)便利的同時(shí),由于存在時(shí)空需求的波動(dòng),導(dǎo)致區(qū)域間單車(chē)的分布量出現(xiàn)不平衡的問(wèn)題。一方面,部分區(qū)域的單車(chē)“供過(guò)于求”,引起大量共享單車(chē)的堆積亂放,增加了共享單車(chē)平臺(tái)的運(yùn)營(yíng)成本;另一方面,部分地區(qū)又存在“供不應(yīng)求”,降低了用戶的便捷度和使用率。因此,就如何在城市區(qū)域內(nèi)對(duì)共享單車(chē)進(jìn)行合理有效的投放,實(shí)現(xiàn)共享單車(chē)平穩(wěn)、有序、健康、綠色、持久發(fā)展,是值得深入探討與研究的問(wèn)題。究其本質(zhì)是要平衡各區(qū)域共享單車(chē)的分布量,顯然,精確預(yù)測(cè)區(qū)域內(nèi)共享單車(chē)短時(shí)需求量是解決問(wèn)題的有效方法之一。
近年來(lái),有關(guān)區(qū)域內(nèi)共享單車(chē)需求量預(yù)測(cè)問(wèn)題的研究頗多。Ma 等[1]基于微波傳感數(shù)據(jù),提出利用長(zhǎng)短期記憶網(wǎng)絡(luò)(Long-short Term Memory network,LSTM)模型對(duì)交通速度進(jìn)行預(yù)測(cè),在精度和穩(wěn)定性方面獲得比其他常用的參數(shù)化和非參數(shù)化算法更好的預(yù)測(cè)效果。XU 等[2]將LSTM 模型運(yùn)用到共享單車(chē)需求量預(yù)測(cè)問(wèn)題中,構(gòu)建了有效預(yù)測(cè)共享單車(chē)需求量的模型。Kaltenbrunn 等[3]提出的差分整合移動(dòng)平均自回歸模型(Autoregressive Integrated Moving Average Model,ARIMA)通過(guò)時(shí)間序列預(yù)測(cè)方法預(yù)測(cè)站點(diǎn)單車(chē)的需求量,分析站點(diǎn)單車(chē)的狀態(tài)。Singhvi 等利用線性回歸模型對(duì)紐約公共自行車(chē)系統(tǒng)的自行車(chē)需求量問(wèn)題進(jìn)行了研究。宋鵬等[4]利用主成分分析法對(duì)數(shù)據(jù)降維從而降低實(shí)驗(yàn)的復(fù)雜度,通過(guò)構(gòu)建基于不同核函數(shù)支持向量機(jī)的預(yù)測(cè)模型證明了基于徑向基核函數(shù)支持向量機(jī)預(yù)測(cè)模型的有效性。曹旦旦等[5]通過(guò)天氣特征數(shù)據(jù)信息分析時(shí)間因子、氣象因子等對(duì)單車(chē)需求量的影響,采用長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)模型準(zhǔn)確預(yù)測(cè)共享單車(chē)的短時(shí)需求量。種穎珊等[6]根據(jù)共享單車(chē)需求量的隨機(jī)性和時(shí)變性,提出一種基于隨機(jī)森林和時(shí)空聚類(lèi)的預(yù)測(cè)模型,該模型可以快速準(zhǔn)確地預(yù)測(cè)出共享單車(chē)站點(diǎn)的需求量。劉耿耿等[7]采用時(shí)間步長(zhǎng)為12 的雙向長(zhǎng)短期記憶的深度網(wǎng)絡(luò)模型,該模型所預(yù)測(cè)的共享單車(chē)需求量較為精確。
在共享單車(chē)的運(yùn)營(yíng)方式上,國(guó)內(nèi)和國(guó)外存在一定的差別,但在共享單車(chē)需求量預(yù)測(cè)問(wèn)題的研究上,國(guó)外的研究對(duì)我們有著十分重要的參考意義。上述各項(xiàng)研究在一定程度上均實(shí)現(xiàn)了對(duì)某個(gè)城市或區(qū)域內(nèi)整體用戶共享單車(chē)需求量的預(yù)測(cè),但是由于所考慮的相關(guān)因素不足,建模所選擇的特征向量也比較理想化,對(duì)于無(wú)特定周期且波動(dòng)明顯的數(shù)據(jù),僅僅使用時(shí)序模型是遠(yuǎn)遠(yuǎn)不能達(dá)到精度要求的,因此需要采用更加有效的方法實(shí)現(xiàn)更加精準(zhǔn)的預(yù)測(cè)。
針對(duì)目前共享單車(chē)分布及調(diào)度所存在的問(wèn)題,本文將天氣因素對(duì)共享單車(chē)需求量的影響考慮在內(nèi),采用輕量級(jí)梯度提升機(jī)(Light Gradient Boosting Machine,LightGBM)算法[8-10]構(gòu)建模型,由于算法運(yùn)行速度快且所占內(nèi)存小,能夠減少模型的訓(xùn)練時(shí)間。通過(guò)貝葉斯超參數(shù)算法對(duì)LightGBM 的參數(shù)進(jìn)行優(yōu)化,可以實(shí)現(xiàn)對(duì)共享單車(chē)短時(shí)需求量的預(yù)測(cè),達(dá)到更快的訓(xùn)練速度以及更好的預(yù)測(cè)性能。
本文采用如表1所示的UCI 機(jī)器學(xué)習(xí)庫(kù)中的數(shù)據(jù)集Bike Sharing Data Set。該數(shù)據(jù)集提供跨越兩年并以小時(shí)為單位進(jìn)行統(tǒng)計(jì)的共享單車(chē)短時(shí)租賃數(shù)據(jù),同時(shí)考慮了天氣、季節(jié)、時(shí)間等特征因素對(duì)共享單車(chē)使用量的影響。
表1 原始數(shù)據(jù)信息
按照時(shí)間順序刻畫(huà)整個(gè)數(shù)據(jù)集中共享單車(chē)的需求量,如圖1所示。
圖1 共享單車(chē)需求量
由圖1可知,2012年共享單車(chē)的需求量相較于2011年有所增加,且波動(dòng)幅度具有周期性、逐月、逐年遞增變化。根據(jù)這種變化特點(diǎn),可以從由日期和時(shí)間構(gòu)成的數(shù)據(jù)datetime 中提取出年、月、日、小時(shí)和星期幾,然后去除日期。對(duì)于特征holiday,數(shù)值為0 表示非節(jié)假日,數(shù)值為1 表示節(jié)假日;對(duì)于特征workingday,數(shù)值為0 表示非工作日,數(shù)值為1 表示工作日。對(duì)于特征天氣,數(shù)值1、2、3、4 分別代表晴天、陰天、小雨或小雪、惡劣天氣。實(shí)際溫度、體感溫度單位為攝氏度。
將處理后的數(shù)據(jù),基于數(shù)據(jù)類(lèi)型中的浮點(diǎn)型因素和枚舉型因素對(duì)共享單車(chē)借車(chē)數(shù)的影響進(jìn)行分析。
根據(jù)數(shù)據(jù)集中不同實(shí)際溫度、體感溫度、濕度、風(fēng)速下的每小時(shí)共享單車(chē)借車(chē)數(shù)量繪出散點(diǎn)圖,從而分析出不同特征因素對(duì)租賃量的影響,如圖2所示。
由圖2(a)和(b)可知,數(shù)據(jù)點(diǎn)主要集中于溫度的某個(gè)范圍內(nèi),說(shuō)明共享單車(chē)租賃量在某個(gè)溫度范圍內(nèi)比較高,而溫度太低或者太高,共享單車(chē)租賃量則會(huì)明顯降低。且由圖2(a)和(b)可知,實(shí)際溫度和體感溫度的散點(diǎn)圖走向是一致的,說(shuō)明實(shí)際溫度和體感溫度對(duì)共享單車(chē)租賃量的影響基本相同,其中一個(gè)特征因素就能反映對(duì)共享單車(chē)租賃量的影響。從圖2(c)中可以看出,在一定的濕度范圍內(nèi),單車(chē)的租賃量沒(méi)有明顯的變化。由圖2(d)可知,當(dāng)風(fēng)速逐漸增大時(shí),單車(chē)的租賃量越來(lái)越少,說(shuō)明風(fēng)速對(duì)共享單車(chē)的租賃量有很大的影響。
圖2 不同特征因素與單車(chē)租賃量關(guān)系散點(diǎn)圖
時(shí)間、季節(jié)、節(jié)假日、天氣為離散特征,可以采用統(tǒng)計(jì)的方式分析是否具有相關(guān)性。根據(jù)數(shù)據(jù)集中時(shí)間、月份、季節(jié)、天氣影響因素繪制每小時(shí)的共享單車(chē)借車(chē)數(shù)量,如圖3所示。
由圖3(a)可知,4月—10月共享單車(chē)租賃數(shù)量較多;圖3(b)中顯示共享單車(chē)租賃數(shù)量在夏季和秋季時(shí)最多;由圖3(a)和(b)可以得出結(jié)論,月份和季節(jié)對(duì)共享單車(chē)租借數(shù)量的影響大致相同,但是月份信息更加全面,因此留下月份特征,刪除季節(jié)特征;從圖3(c)中可以看出,工作日租賃數(shù)量比非工作日多,且天氣晴朗時(shí)租賃量明顯高于其他天氣狀況下的租賃量,說(shuō)明天氣狀況與共享單車(chē)租賃量有很大的相關(guān)性;從圖3(d)中可以看出,工作日存在早晚高峰期,早高峰在7:00—8:00 點(diǎn)左右,晚高峰在17:00—18:00 點(diǎn)左右。此外,11:00—14:00 點(diǎn)的使用量較高;節(jié)假日共享單車(chē)使用量較高的時(shí)間段為9:00—19:00。由此可知,共享單車(chē)需求量在不同時(shí)間段(尤其是早晚高峰時(shí)段)差異較大。
圖3 不同月份、季節(jié)、天氣、小時(shí)共享單車(chē)使用量
2.1.1 算法原理
LightGBM 是梯度提升決策樹(shù)(Gradient Boosting Decision Tree,GBDT)的一種高效實(shí)現(xiàn)。它的原理與GBDT 相似,將當(dāng)前決策樹(shù)殘差的近似值替換為損失函數(shù)下降最快的方向即負(fù)梯度以此來(lái)擬合新的決策樹(shù),即每一次迭代都在原來(lái)模型不變的基礎(chǔ)上,通過(guò)新增一個(gè)函數(shù)到模型中,使預(yù)測(cè)值不斷逼近真實(shí)值。它的獨(dú)特性包括以下幾點(diǎn):一是基于梯度的單面采樣決策樹(shù)(Goss),二是排他特征綁定(EFB)算法,三是基于深度限制的直方圖,四是葉片生長(zhǎng)策略。
訓(xùn)練目標(biāo)函數(shù)如式(1)所示,其中yi為標(biāo)簽的真實(shí)值,為第K-1次學(xué)習(xí)的結(jié)果,為前K-1 棵樹(shù)的正則化項(xiàng)和,目標(biāo)函數(shù)的含義為尋找一棵合適的樹(shù)fk,使得函數(shù)的值最?。?/p>
泰勒公式對(duì)目標(biāo)函數(shù)進(jìn)行展開(kāi),可得:
損失函數(shù)的二階泰勒展開(kāi)結(jié)果為:
用gi記為第i個(gè)樣本損失函數(shù)的一階導(dǎo)數(shù),hi記為第i個(gè)樣本損失函數(shù)的二階導(dǎo)數(shù):
簡(jiǎn)化后的目標(biāo)函數(shù)可表示為:
2.1.2 算法優(yōu)勢(shì)
直方圖算法通過(guò)離散化的方法將連續(xù)的浮點(diǎn)數(shù)轉(zhuǎn)化為K個(gè)整數(shù),同時(shí)生成一個(gè)直方圖,寬度為K。遍歷數(shù)據(jù)的時(shí)候,在直方圖中,先統(tǒng)計(jì)累積索引離散化后的特征值,然后遍歷圖中離散值索引對(duì)應(yīng)的特征值,依次計(jì)算以獲得最優(yōu)分割點(diǎn)。由此可以大大減少內(nèi)存的占用,不僅節(jié)約訓(xùn)練時(shí)間,同時(shí)也削弱了噪聲帶來(lái)的影響,從而提升了精度,如圖4所示。
圖4 直方圖算法原理
LightGBM 在直方圖算法的基礎(chǔ)上,不再采用傳統(tǒng)的Level-wise 策略,而是通過(guò)一種更為高效的帶有深度限制的leaf-wise tree growth 策略。leaf-wise 策略是通過(guò)循環(huán)遍歷所有葉子節(jié)點(diǎn),并依次計(jì)算每個(gè)葉子的分裂增益,對(duì)每次循環(huán)中增益最大的葉子進(jìn)行分裂。此方法與Level-wise 相比,當(dāng)分裂次數(shù)相同時(shí),leaf-wise 不僅誤差較小,而且精度更高。同時(shí)LightGBM 在保證高效率的前提下為了防止出現(xiàn)模型過(guò)擬合現(xiàn)象,在樹(shù)生長(zhǎng)過(guò)程中增加了最大深度限制,如圖5所示。
圖5 Leaf-wise tree growth 策略
貝葉斯超參數(shù)優(yōu)化算法的基本思想是根據(jù)過(guò)去目標(biāo)的評(píng)估結(jié)果建立代替函數(shù),以此找到目標(biāo)函數(shù)的最小值。在此過(guò)程中,所建立的替代函數(shù)比原始目標(biāo)函數(shù)更容易優(yōu)化,并通過(guò)proxfunction 應(yīng)用特定標(biāo)準(zhǔn)來(lái)選擇要評(píng)估的輸入值。貝葉斯調(diào)參的迭代次數(shù)少,運(yùn)行速度快,還可以實(shí)現(xiàn)多個(gè)參數(shù)同時(shí)調(diào)整,不僅降低了維度爆炸的可能性,而且還縮短了運(yùn)行時(shí)間。貝葉斯超參數(shù)優(yōu)化算法只制定參數(shù)大體的變化范圍,不考慮如何進(jìn)一步細(xì)分范圍。
根據(jù)數(shù)據(jù)集的數(shù)量和劃分,設(shè)定調(diào)參范圍,并同時(shí)對(duì)最大葉子數(shù)、最大深度、學(xué)習(xí)率、最小分裂增益樣本抽樣率和特征抽樣率等多個(gè)參數(shù)進(jìn)行調(diào)參,最終結(jié)果如表2所示。
表2 貝葉斯優(yōu)化的調(diào)參范圍與結(jié)果
基于貝葉斯優(yōu)化的LightGBM 算法共享單車(chē)短時(shí)需求量預(yù)測(cè)模型構(gòu)建由以下幾個(gè)部分組成。首先,對(duì)所采用的數(shù)據(jù)集進(jìn)行預(yù)處理,主要包括缺失值處理,數(shù)據(jù)格式轉(zhuǎn)換等;其次,對(duì)影響共享單車(chē)使用量的特征因素進(jìn)行分析和特征選擇,最終數(shù)據(jù)集包含7 個(gè)特征因素;接著將整個(gè)數(shù)據(jù)集劃分為訓(xùn)練集與測(cè)試集,通過(guò)貝葉斯優(yōu)化算法優(yōu)化超參數(shù);最后,采用測(cè)試集對(duì)優(yōu)化后的模型進(jìn)行測(cè)試,通過(guò)測(cè)試結(jié)果評(píng)估模型性能,進(jìn)而獲得最終模型。其中,訓(xùn)練集和測(cè)試集按8:2 的比例劃分,共享單車(chē)的租賃量作為決策屬性,將特征選擇獲得的7 個(gè)屬性作為特征屬性,算法預(yù)測(cè)流程圖如圖6所示。
圖6 共享單車(chē)短時(shí)需求量預(yù)測(cè)模型流程圖
研究所使用的數(shù)據(jù)中包含12 個(gè)屬性和10 886 個(gè)觀察值,提供了跨越兩年的每小時(shí)租賃數(shù)據(jù),包含天氣信息和日期信息,訓(xùn)練集由每月前19 天的數(shù)據(jù)組成,測(cè)試集由每月后10天的數(shù)據(jù)組成。本實(shí)驗(yàn)的數(shù)據(jù)是通過(guò)統(tǒng)計(jì)由以小時(shí)為單位的數(shù)據(jù)組成,其中數(shù)據(jù)的每一行代表一天中的某一特定時(shí)間。本文使用Python 中的sklearn 工具包來(lái)構(gòu)建預(yù)測(cè)模型,調(diào)整模型參數(shù)后,利用LightGBM 模型進(jìn)行預(yù)測(cè)。
由于數(shù)據(jù)特征因素之間的基本度量單位不同,導(dǎo)致特征因素對(duì)共享單車(chē)借車(chē)量的結(jié)果分析產(chǎn)生較大的影響,從而掩蓋了實(shí)際情況,因此通過(guò)離差標(biāo)準(zhǔn)化對(duì)數(shù)據(jù)進(jìn)行歸一化處理以統(tǒng)一各屬性量級(jí),轉(zhuǎn)換方法如下:
通過(guò)反歸一化還原預(yù)測(cè)結(jié)果為原本的量綱,方便后續(xù)的結(jié)果分析,計(jì)算公式為:
其中,xi表示原始數(shù)據(jù),表示歸一化之后的無(wú)量綱數(shù)據(jù),y表示反歸一化后的數(shù)據(jù)。
回歸模型的評(píng)估指標(biāo)用來(lái)衡量預(yù)測(cè)值與真實(shí)值之間的偏差,采用數(shù)據(jù)集中的實(shí)際數(shù)據(jù)來(lái)評(píng)估模型的預(yù)測(cè)精度。本文采用均方根誤差(RMSE)、絕對(duì)誤差的平均值(MAE)和平方相關(guān)系數(shù)(R2)對(duì)模型的可靠性進(jìn)行評(píng)估,其計(jì)算公式分別為:
利用評(píng)估指標(biāo)MAE、R2和RMSE 檢驗(yàn)?zāi)P偷男阅?,并?duì)預(yù)測(cè)結(jié)果進(jìn)行誤差分析。利用貝葉斯優(yōu)化后的LightGBM模型預(yù)測(cè)12月15日每小時(shí)的用戶共享單車(chē)借車(chē)數(shù)量,結(jié)果如圖7所示。
圖7 貝葉斯優(yōu)化后的LightGBM 模型預(yù)測(cè)結(jié)果
由圖7可以看出,采用氣溫、風(fēng)速、天氣、小時(shí)、月份、工作日與否、節(jié)假日與否作為影響因素,能更加準(zhǔn)確地預(yù)測(cè)區(qū)域內(nèi)用戶每小時(shí)的共享單車(chē)借車(chē)需求量。其中,綠色線為預(yù)測(cè)值,紅色線為真實(shí)值,對(duì)比預(yù)測(cè)值與真實(shí)值,兩者接近并且變化態(tài)勢(shì)一致。
為證明本文所構(gòu)建模型的可靠性和準(zhǔn)確性,將該模型與基于XGBoost 的預(yù)測(cè)模型和基于隨機(jī)森林的短時(shí)需求預(yù)測(cè)模型的預(yù)測(cè)結(jié)果進(jìn)行對(duì)比,評(píng)價(jià)指標(biāo)結(jié)果如表3所示。
表3 三種模型的評(píng)價(jià)指標(biāo)平均值對(duì)比表
由圖7和表3可知,比較三個(gè)指標(biāo)的評(píng)估結(jié)果,經(jīng)過(guò)貝葉斯優(yōu)化的LightGBM 算法的預(yù)測(cè)效果優(yōu)于其他算法。
基于貝葉斯優(yōu)化的LightGBM 模型的MAE 的最小值為0.494,低于XGBoost 模型和隨機(jī)森林模型,說(shuō)明其預(yù)測(cè)結(jié)果更準(zhǔn)確,且該模型的RMSE 也低于XGBoost 模型和隨機(jī)森林模型,說(shuō)明該模型的預(yù)測(cè)結(jié)果更可靠。此外,本文模型的R2高于另外兩個(gè)模型,說(shuō)明該模型的擬合效果優(yōu)于其他兩個(gè)模型。
綜上所述,經(jīng)過(guò)貝葉斯優(yōu)化的LightGBM 模型可以更加精確地預(yù)測(cè)區(qū)域內(nèi)共享單車(chē)的短時(shí)需求量,與XGBoost 模型和隨機(jī)森林模型的預(yù)測(cè)結(jié)果相比,該模型的預(yù)測(cè)精度更高,預(yù)測(cè)結(jié)果更可靠。
共享單車(chē)的出現(xiàn)滿足了人們?nèi)粘6掏境鲂械男枰?,緩解了城市交通擁堵和環(huán)境污染問(wèn)題。與此同時(shí),共享單車(chē)投放量不平衡問(wèn)題也會(huì)導(dǎo)致社會(huì)資源的浪費(fèi)和民眾使用便捷性的降低。因此,對(duì)共享單車(chē)的需求量進(jìn)行準(zhǔn)確的預(yù)測(cè),這一舉措對(duì)共享單車(chē)的合理分布與科學(xué)調(diào)度是十分重要的。本文提出的基于貝葉斯優(yōu)化的LightBGM 算法,在共享單車(chē)短時(shí)借車(chē)需求量的預(yù)測(cè)上為相關(guān)人員提供了更有效、更準(zhǔn)確的方法,可以為共享單車(chē)特定區(qū)域的投放量測(cè)定,以及區(qū)域間共享單車(chē)的調(diào)度提供指導(dǎo)依據(jù),有助于實(shí)現(xiàn)共享單車(chē)供給與用戶需求的適度匹配。實(shí)驗(yàn)結(jié)果表明,本文所提出的模型對(duì)共享單車(chē)短時(shí)需求量的預(yù)測(cè)性能最佳,但是對(duì)于一些波動(dòng)比較大的數(shù)據(jù)則無(wú)法準(zhǔn)確預(yù)測(cè),為此我們不會(huì)止步于前,而是進(jìn)一步開(kāi)展相關(guān)研究。