曹旦旦,范書瑞,夏克文
(1. 河北工業(yè)大學電子信息工程學院, 天津 300401;2. 河北工業(yè)大學大數(shù)據(jù)重點實驗室, 天津 300401)
在如今這個大數(shù)據(jù)時代,通過對大數(shù)據(jù)進行分析來快速精確預測某一時間某一地點的共享單車短時需求量,從而合理地確定單車的投放數(shù)量和調(diào)度安排,是個亟待解決的問題?,F(xiàn)階段對共享單車需求量預測的研究主要有如下方法。在影響共享單車短時需求量的各種因素方面,Campbell等(2016)[1]通過對北京共享單車項目的調(diào)查指出,影響共享單車需求因素主要有距離、氣溫、降水、空氣質(zhì)量等;Matton 和 Godavarthy(2017)[2]指出氣溫、風力、降水等氣候條件是影響共享單車需求的主要因素;Faghih-Imani 等(2014)[3]提出,時點因素也是影響共享單車需求的重要變量,包括每天的時間段、是否周末、高峰時間等;Zhang等[4]和Li等[5]還發(fā)現(xiàn)車站的位置、大小、服務范圍是否重疊也會對車輛的需求量產(chǎn)生影響。在共享單車需求預測方法方面,文獻[6]對共享單車需求的預測采用的方法集中在傳統(tǒng)線性O(shè)LS模型、二分類和多分類Logit模型等,這些經(jīng)驗模型需要大量觀測數(shù)據(jù),且具有明顯的局域性,回歸關(guān)系不能很好符合實際情況。Kaltenbrunner等人[7]對里昂和巴塞羅那的公共自行車系統(tǒng)采用時間序列分析來預測其每小時的需求情況。Bacciu 等(2017)[8]采用機器學習中的支持向量機和隨機森林模型預測了共享單車站點是否會在短時間內(nèi)有單車歸還,但沒有系統(tǒng)討論單車使用的短期需求等問題。
目前國內(nèi)外對在短時間內(nèi)的共享單車需求量預測的研究較少。而機器學習由于其預算速度高效,預測精度高且應用范圍廣等優(yōu)點,已經(jīng)廣泛應用于各種算法和計算機等交叉學科。為了避免上述算法的缺陷,本文提出了當前最為主流的五種機器學習模型:隨機森林,極端隨機樹,人工神經(jīng)網(wǎng)絡(luò),支持向量機和XGBoost。將這幾種模型分別應用于美國共享單車系統(tǒng),并在bike-sharing數(shù)據(jù)集上對各學習方法進行了仿真。通過性能比較發(fā)現(xiàn),極端隨機樹和隨機森林方法在實驗中效果比較好,可以用來對單車短時需求量進行預測。
和之前的預測方法相比較,本文所使用的需求量預測方法的創(chuàng)新之處在于:①上述已做的相關(guān)工作中,對單車需求量的預測主要使用一個方法,而本文則使用了多個機器學習方法,實現(xiàn)對需求量的預測,并對不同方法的預測效果以及相關(guān)指標進行了對比。②和其它相關(guān)工作相比較,本文將大數(shù)據(jù)機器學習方法引入共享單車行業(yè)的“小時級”短期需求預測,提升行業(yè)對即時性需求的預測效率,從而輔助企業(yè)的實時調(diào)度,提高單車資源的整體利用水平。
SVM是一種有監(jiān)督學習模型,通常用來解決線性和非線性問題。本次研究中需構(gòu)建非線性的單車需求量預測回歸模型。SVM利用非線性映射算法將影響單車需求量的的低維特征空間非線性轉(zhuǎn)化到另一個高維空間使其線性可分,從而在高維特征空間采用線性方法對影響單車需求量樣本的非線性特征進行線性分析。在搭建模型的過程中,采用核函數(shù)RBF來預測每小時的單車需求量,因為RBF核函數(shù)不僅可以處理線性可分和不可分問題,且參數(shù)少,構(gòu)建的模型的復雜度低,預測效率高。
神經(jīng)網(wǎng)絡(luò)構(gòu)建網(wǎng)絡(luò)拓撲結(jié)構(gòu),通過確定學習規(guī)則、模擬人體神經(jīng)元的工作過程。其結(jié)構(gòu)由輸入層、隱藏層和輸出層構(gòu)成。本文的網(wǎng)絡(luò)結(jié)構(gòu)為:輸入層由10個神經(jīng)元組成,代表影響單車需求量的10個特征變量,隱層設(shè)置為4個神經(jīng)元,輸出層由1個神經(jīng)元組成,不同的層次之間具有不同的網(wǎng)絡(luò)權(quán)值,神經(jīng)網(wǎng)絡(luò)的學習問題就是網(wǎng)絡(luò)權(quán)值的調(diào)整問題。網(wǎng)絡(luò)權(quán)值確定后,對于給定的輸入,通過整個網(wǎng)絡(luò)的處理,得到最終的輸出結(jié)果。
隨機森林是利用多棵CART樹對訓練集樣本進行訓練,然后對測試集樣本進行回歸預測的模型。它由多個決策樹構(gòu)成,且這些決策樹之間無關(guān)聯(lián)性。在用隨機森林模型預測共享單車需求量的過程中,每當輸入一個新的樣本時,隨機森林中的每一棵決策樹分別對這個樣本進行一次回歸預測,最后將得到的所有的回歸結(jié)果進行算術(shù)平均得到的值為最終的模型輸出。
Gourt P等人[9]提出了極端隨機樹算法,它是一種集成算法。在用極端隨機樹模型預測共享單車需求量的過程中,按照決策樹里的CART算法來生成基回歸器,且在形成決策樹的過程中隨機性強,每個基回歸器使用全部的影響單車需求量的特征樣本進行訓練;這樣重復迭代K次,生成K顆決策樹,直至生成極端隨機樹;最后用該極端隨機樹對單車數(shù)據(jù)集的測試樣本進行預測,得出每小時的單車需求總量,然后統(tǒng)計一下所有的基回歸器的預測結(jié)果,通過投票決策的方法來產(chǎn)生最終的回歸預測結(jié)果。
XGBoost算法的基本思想是把多棵預測準確率較低的樹模型組合起來,構(gòu)建一個準確率較高的模型。該模型不斷地迭代提升,每次迭代生成一棵樹來擬合上一棵樹的殘差。最后訓練完成得到K棵樹,來預測一個樣本的分數(shù),最后將每棵樹對應的分數(shù)加起來后就得到了該樣本的預測值。
3.1.1 實驗環(huán)境
本次實驗環(huán)境在Windows7系統(tǒng)中使用Anaconda Navigator3(Jupyter notebook),Python3.6為實驗平臺進行仿真。
3.1.2 實驗數(shù)據(jù)說明
針對本次研究選用 UCI(University of California Irvine)的Bike Sharing Dataset 中的每小時自行車使用量部分。相應的,由于自行車騎行情況同天氣有明顯的關(guān)系,所以數(shù)據(jù)中的特征變量主要由相關(guān)氣候指數(shù)組成,比如溫度,濕度,是否下雨,所處季節(jié)等,同時還包括假日以及周末等特征。該自行車使用數(shù)據(jù)來自于美國華盛頓特區(qū)2011到2012年兩年的首都共享單車租用記錄和對應時間的天氣和季節(jié)信息,該數(shù)據(jù)集包含17370個樣本點。使用的數(shù)據(jù)字段包括16個變量,其具體名稱和含義見表1。其中具體的時間因素影響特征又包括24個時段變量、7個星期變量、是否周末、是否其它法定假日以及工作日等多個維度。
表1 實驗中使用的UCI數(shù)據(jù)集
3.2.1 氣象因子的影響
自行車是一種受氣象影響顯著的交通工具,圖3所示為2011-2012年華盛頓地區(qū)共享單車租借總量與五種氣象因子的相關(guān)性熱力分布圖。
圖1 氣象因子與共享單車需求量的熱力圖
由圖可得,共享單車需求量與五種氣象因子之間都存在相關(guān)性,溫度、體感溫度與租車人數(shù)成正相關(guān)-寒冷抑制租車需求,其中temp和atemp的意義及其與count的相關(guān)系數(shù)十分接近,均為0.4,因此可以只取temp作為溫度的特征;濕度與租車人數(shù)負相關(guān)-雨雪天氣抑制租車需求;單車需求量與溫度和濕度的相關(guān)性最高,分別為0.4和-0.32。
3.2.2 時間因子的影響
1)共享單車使用量受時間影響,利用2011-2012年美國華盛頓地區(qū)共享單車項目數(shù)據(jù)進行時序變化規(guī)律分析,結(jié)果如圖2所示。
圖2 日期與共享單車需求量的折線圖
2012年的租借數(shù)明顯比2011年高,說明隨著時間的推移,共享單車逐漸被更多的人熟悉和認可,使用者越來越多。月份對租借數(shù)影響顯著,從1月份開始每月的租借數(shù)快速增加,到6月份達到頂峰,隨后至10月緩慢降低,10月后急劇減少。這明顯與季節(jié)有關(guān)。
季節(jié)對租借數(shù)的影響符合預期:寒冷季節(jié)(1,2,12月),工作日租車人數(shù)高于非工作日,寒冷季節(jié)租車以通勤為主;溫暖、涼爽季節(jié)(5-11月),非工作日租車人數(shù)高于工作日。春季騎車人少,隨著天氣轉(zhuǎn)暖,騎車人逐漸增多,并在秋季(天氣最適宜時)達到頂峰;隨后進入冬季,天氣變冷,騎車人減少。由此得出yr、mnth等時間因素對count也存在明顯影響,因為月份和季節(jié)對租借數(shù)的影響重合,且月份更加詳細,因此在隨后的建模過程中可以選取月份特征,刪除季節(jié)特征。
2)圖3進一步考察了以每天的不同時間段為單位,各星期對租借數(shù)的影響,并繪制折線圖。
圖3 星期與共享單車需求量的折線圖
上圖中的1-6代表周一到周六,0代表周日。從圖中可以看出,周一到周五租車人數(shù)相對較多,說明非周末情況下上班族需要用車,周一到周五,每天有兩個高峰期,分別是早上8點左右和下午17點左右用車人較多,正好是工作日的上下班高峰期;而介于兩者之間的白天時間變化規(guī)律不明顯,可能與節(jié)假日有關(guān),因此需要考慮這些法定節(jié)假日的影響;而周六日的整體租車人數(shù)比較少,其中周六日的上午9點到下午5點用車人數(shù)較多。進一步體現(xiàn)了時間段尤其是上下班高峰時間是影響單車需求的重要因素,也體現(xiàn)了節(jié)假日與周末兩個日期特征對需求的影響。
1)特征篩選:通過以上對影響因子的分析,在接下來建模時要刪除“注冊用戶數(shù)量”、“未注冊用戶數(shù)量”、atemp和季節(jié)這四個對預測結(jié)果影響較小的特征。
2)虛擬變量:通過pandas庫中的get_dummies()函數(shù)對季節(jié),月份和天氣等分類變量創(chuàng)建二進制虛擬變量;
3)調(diào)整目標變量:為了更輕松地訓練模型,需要將溫度、濕度和風速等連續(xù)變量標準化,使它們的均值為0,標準差為1;同時保存換算因子,在后續(xù)進行預測時可以還原數(shù)據(jù)。
4)數(shù)據(jù)集劃分:本文將總的樣本集劃分為訓練集樣本(2011年1月1日0時至2012年12月10日17時樣本) 和測試集樣本(剩余觀測值),并對5種典型的機器學習模型采用5折交叉驗證來設(shè)定。
基于多種機器學習方法實現(xiàn),以及華盛頓地區(qū)共享單車項目數(shù)據(jù)集,完成該地區(qū)每小時的單車需求量的預測。具體實驗方法如下:①首先,對原始單車項目數(shù)據(jù)進行處理,構(gòu)建復合要求的數(shù)據(jù)集;②通過調(diào)用訓練集完成對機器學習模型的訓練,使模型不斷提高預測能力;③通過調(diào)用驗證集對訓練出來的模型進行驗證評估;④對預測效果進行統(tǒng)計分析,判斷預測的精確度,并統(tǒng)計均方誤差、平均絕對誤差和R平方得分等各項指標來選出最佳的預測模型;⑤調(diào)用測試集,用最優(yōu)模型對單車需求量進行預測,并與實際的騎行人數(shù)進行對比。
3.5.1 實驗結(jié)果說明
評價回歸模型性能的主要的幾個指標是平均絕對誤差(MAE)、均方誤差(RMSE)、分數(shù)以及CV曲線圖等幾個指標,具體定義如下
(1)
(2)
(3)
3.5.2 各模型均方誤差比較結(jié)果
均方誤差是用來衡量模型預測值與真實值之間的偏差的物理量,當有一個預測值和真實值之間相差特別大時,那么RMSE就會很大,說明該模型的預測效果很差。圖4給出了五種方法的均方誤差結(jié)果比較。均方誤差越低,證明該模型的預測準備率越高。
圖4 均方誤差結(jié)果比較
3.5.3 平均絕對誤差比較結(jié)果
平均絕對誤差是衡量模型的預測值與真實值之間平均相差多大的物理量,也就是預測值的無偏性。其值越低,就意味著該模型的預測效果越好。圖5給出了五種模型的平均絕對誤差的比較結(jié)果。
圖5 平均絕對誤差結(jié)果比較
各個模型在該數(shù)據(jù)集上的均方誤差及平均絕對誤差比較結(jié)果如圖4和圖5所示??梢缘贸?,無論是RMSE還是MAE,從訓練集的預測結(jié)果來看極端隨機樹算法的預測精度最高,其單車需求量預測結(jié)果的均方誤差和平均絕對誤差分別僅為36.84和22.93,其次是隨機森林算法,其單車需求量預測結(jié)果的均方誤差和平均絕對誤差分別為38.29和23.52,其它模型在訓練集上的回歸預測精度大小依次為人工神經(jīng)網(wǎng)絡(luò)(RMSE=41.12,MAE=27.31)>XGboost(RMSE=55.02,MAE=38.25)>支持向量機回歸(RMSE=98.11,MAE=59.65)。由此可以得出極端隨機樹的預測精度最高。
3.5.4 R平方得分比較結(jié)果
R平方得分是通過數(shù)據(jù)的變化來表征一個模型擬合的好壞,通過該值可以精確地得出每個模型在該數(shù)據(jù)集上的的預測精確度。其值越接近1,表明方程的變量對y的解釋能力越強,這個模型對數(shù)據(jù)的擬合效果較好,其值越接近0,表明模型擬合的越差。通過對數(shù)據(jù)集進行5折交叉驗證后的訓練集得分和驗證集的R得分如圖6和圖7所示。
圖6 訓練集上的R得分結(jié)果比較
圖7 驗證集上的R得分結(jié)果比較
由上圖可以看出,訓練集得分最高的依舊是極端隨機樹,R得分已經(jīng)達到了1.00,說明在訓練集上的預測精度相當高,完全不存在預測誤差,其次是隨機森林,預測精度達到0.99,僅次于極端隨機樹。接著是人工神經(jīng)網(wǎng)絡(luò)(score=0.953)>XGboost(score=0.843),最差的是支持向量機回歸,得分僅為0.336,預測精度極低。從驗證集預測精度來看,仍然是極端隨機樹得分最高為0.941,其次是人工神經(jīng)網(wǎng)絡(luò),再次是隨進森林,得分為0.932,XGboost得分0.837,預測誤差大,而支持向量機回歸對驗證集的預測精度極低,僅為0.33,說明該模型不適合在該數(shù)據(jù)集上的進行預測。由此得出極端隨機樹的預測精度最高。
3.5.5 CV曲線比較結(jié)果
CV學習曲線是樣本個數(shù)和經(jīng)驗損失函數(shù)之間的曲線,是監(jiān)督學習算法中診斷模型偏差和方差的很好的工具,不僅可以用來判斷模型是否過擬合或欠擬合,還可以判斷是否為了提高算法的性能需要收集更多的數(shù)據(jù)。為了驗證不同模型在該數(shù)據(jù)集上的擬合能力和預測準確率,將訓練數(shù)據(jù)集的大小看成自變量,將模型在訓練集上的準確率和驗證集上的準確率作為因變量來繪制CV曲線圖如圖8-圖12所示。通過不同模型的CV曲線圖能夠很直觀地看出模型的擬合問題和增加訓練數(shù)據(jù)集的大小是否能解決模型的過擬合問題。
由圖8和圖9兩種單一機器學習模型的CV曲線圖可得,支持向量機模型是高偏差模型,模型在訓練集上的準確率和驗證集上的準確率都很低,在0.4-0.5之間,模型不能很好地擬合數(shù)據(jù);通過增加訓練數(shù)據(jù)集的個數(shù),支持向量機模型的準確率有所提升,但是還是處于嚴重的高偏差狀態(tài)。和該模型相比,人工神經(jīng)網(wǎng)絡(luò)模型則表現(xiàn)的比較好,隨著訓練數(shù)據(jù)集的增加,兩條曲線逐漸收斂,說明不存在過擬合現(xiàn)象;模型在訓練集上的準確率和驗證集上的準確率也得到了大幅度提升,此時增加訓練數(shù)據(jù)集的個數(shù)能夠改善模型的性能。
圖8 支持向量機模型學習曲線圖
圖9 人工神經(jīng)網(wǎng)絡(luò)模型學習曲線圖
圖10,圖11和圖12所示的3個圖為典型的集成學習模型的CV曲線圖。由圖可得,XGboost模型在訓練集和驗證集上的準確率都很低,處于高偏差狀態(tài),且隨著訓練數(shù)據(jù)集的增加,效果不但沒有改善,反而變得更差;隨機森林模型和極端隨機樹模型則表現(xiàn)的比較好,模型在訓練集上和驗證集上的得分都很高,訓練集上的得分分別達到了0.98和1.00左右,驗證集上的得分達到了0.93和0.94左右,說明模型能夠很好地擬合數(shù)據(jù)。隨著樣本的增加,訓練集代價函數(shù)一直都很大,驗證集的損失函數(shù)也逐漸增大,具有很小的偏差和方差,誤差逐漸減小。但是,訓練準確率和驗證準確率還是存在較小的差距,說明這兩個模型還是存在輕微的過擬合。這兩個模型都很優(yōu),但是相比與隨機森林模型,極端隨機樹模型更優(yōu)。
圖10 隨機森林模型學習曲線圖
圖11 XGboost模型學習曲線圖
圖12 極端隨機樹模型學習曲線圖
3.5.6 預測結(jié)果分析
用以上得到的最優(yōu)網(wǎng)絡(luò)模型對經(jīng)過預處理和轉(zhuǎn)換后的測試集數(shù)據(jù)進行預測,預測的結(jié)果和實際的結(jié)果如圖13所示。從圖中可以得出,極端樹模型能夠很好地預測數(shù)據(jù),除了最后10天,因為這10天是節(jié)假日,自行車需求量和平時不一樣。預測的每小時使用量曲線和實際車輛使用量曲線趨勢相吻合,滿足回歸預測過程中的經(jīng)驗誤差要求。因此,極端隨機樹預測模型在共享單車短期需求預測中是可行的。
圖13 預測結(jié)果與真實結(jié)果對比曲線
本文把幾種典型的機器學習方法應用在美國共享單車數(shù)據(jù)集上實現(xiàn)單車的短時需求量預測,并通過仿真比較了各個模型的性能。仿真的結(jié)果為:極端隨機樹方法在所選城市的數(shù)據(jù)集上的具有很高的預測精度,其次是隨機森林和人工神經(jīng)網(wǎng)絡(luò),都具有較好的回歸預測能力。不僅具有很好的泛化能力,切擬合效果好。相比而言,XGboost模型預測效果偏差,支持向量回歸機最不適合應用在該數(shù)據(jù)集上,預測精度低,擬合效果差。因此極端隨機樹適合于城市共享單車短時需求量預測系統(tǒng),可以用來對單車短時需求量進行預測。