邵毅明,甘元藝,侯雨彤,鐘 穎
(重慶交通大學 交通運輸學院,重慶 400074)
準確、可靠的交通流預測信息可以直接應(yīng)用于先進的交通管理系統(tǒng)和信息服務(wù)系統(tǒng),為出行者提供實時有效的交通運行信息[1]。同時,可靠的交通流預測是交通管理部門采取交通控制和誘導措施的重要依據(jù)。通過對短時交通流的預測,可以提前調(diào)整交通管理控制手段,從而提高交通運行效率[2-4]。交通流數(shù)據(jù)是時間序列數(shù)據(jù),數(shù)據(jù)質(zhì)量直接影響交通流預測結(jié)果的精度。在實際道路交通系統(tǒng)中,由于檢測設(shè)備、傳輸設(shè)備等出現(xiàn)故障的原因,使采集的交通流數(shù)據(jù)或多或少存在缺失[5-6]。雖然缺失數(shù)據(jù)的數(shù)量隨著信息技術(shù)的發(fā)展有逐漸變少的趨勢,但是為了保證交通流預測結(jié)果的準確性,在少量數(shù)據(jù)缺失的情況下,依然有必要對交通流數(shù)據(jù)修復方法進行研究。
目前,交通流缺失數(shù)據(jù)時間相關(guān)性修復方法多是采用歷史均值法、歷史相鄰加權(quán)法以及預測修復3種[7]。歷史均值法采用前n天當前時間點的對應(yīng)數(shù)據(jù)均值并填充[8],歷史相鄰加權(quán)法獲取前一天同一時刻的歷史數(shù)據(jù)和當天前一時刻的實測值進行加權(quán)平均來修復缺失數(shù)據(jù)[9]。歷史均值法、歷史相鄰加權(quán)法屬于基于歷史數(shù)據(jù)的缺失數(shù)據(jù)修復,這兩類方法簡單易行,能夠解決時間序列修復對連續(xù)異常數(shù)據(jù)修復能力不足的問題,但存在不能反映交通流真實變化的情況。交通流數(shù)據(jù)從本質(zhì)上而言屬于時間序列數(shù)據(jù),所以基于時間序列的各種缺失值修復方法都適合交通流缺失數(shù)據(jù)的修復,預測修復就是典型[10]。預測修復主要將待修復變量作為目標變量,與其相關(guān)的變量作為特征向量,構(gòu)建預測模型,實現(xiàn)對缺失數(shù)據(jù)的預測修復。已有研究采用RBF神經(jīng)網(wǎng)絡(luò)方法[10]、LSSVM的組合閾值修復方法[11]、SVR方法[12]、偏最小二乘法[13]等進行預測修復。
RF集成了bagging和隨機選擇特征分裂等方法的特點,不僅對噪聲和異常值具有較好的容忍度,且相較于AdaBoost、SVM等方法,具有運行速度快、精度高、參數(shù)調(diào)節(jié)方便等優(yōu)點,現(xiàn)階段RF算法主要應(yīng)用于交通流預測方面,有學者通過實例驗證了RF預測城市短時交通流具有合理性和高效性[14-15]。RF預測結(jié)果與模型參數(shù)的優(yōu)化密切相關(guān),當前研究多是探討RF模型在預測中的應(yīng)用,未探索優(yōu)化方式。GA是通過模擬生物在自然環(huán)境中的遺傳和進化過程形成的自適應(yīng)全局優(yōu)化搜索算法,可用于不同領(lǐng)域的參數(shù)尋優(yōu)、路徑規(guī)劃等[16]。結(jié)合以上情況,在考慮交通流時間序列相關(guān)性的基礎(chǔ)上利用優(yōu)化的RF算法對存在少量數(shù)據(jù)缺失的交通流數(shù)據(jù)修復進行研究:用GA優(yōu)化RF模型的重要參數(shù),以修復誤差最小為主要目標,提出GA-RF的交通流缺失數(shù)據(jù)修復方法。采用重慶市南岸區(qū)某路段的交通流數(shù)據(jù)進行模型實證,并與其他數(shù)據(jù)修復方法進行對比,結(jié)果顯示GA-RF模型在少量交通流數(shù)據(jù)缺失情況下,修復誤差低于歷史均值法及歷史相鄰加權(quán)法,修復精度更高,具有更好的修復性能。
RF模型簡單、容易實現(xiàn)、計算開銷小,被譽為“代表集成學習技術(shù)水平的方法”[17],能同時解決分類與回歸問題。RF的“森林”體現(xiàn)在模型是由一定數(shù)量的決策樹構(gòu)成,而“隨機”則體現(xiàn)在樣本的隨機性和特征的隨機性。設(shè)訓練數(shù)據(jù)組共有N條數(shù)據(jù),要構(gòu)建的決策樹個數(shù),即森林的大小為M,每個數(shù)據(jù)點有P維特征,則RF的執(zhí)行過程如圖1所示。
圖1 隨機森林算法示意圖
其中,training_data為N行P列的樣本數(shù)據(jù)集,從該樣本集中有放回采樣M次形成M個不完全相同的子數(shù)據(jù)集bootstrap(i),分別在M個子數(shù)據(jù)上訓練單一決策樹模型,形成含有M棵樹的“森林”,給定一個新的待識別對象,隨機森林中每一棵樹會根據(jù)該對象的屬性給出各自的預測結(jié)果,最后依據(jù)每一棵樹的預測結(jié)果得出整個隨機森林的預測結(jié)果。而根據(jù)問題類型的不同,給出的結(jié)果或為離散值,或為連續(xù)值。當結(jié)果為離散值時,表明當前問題為分類問題,遵從“少數(shù)服從多數(shù)”原則,采用投票法決定最終預測類別;反之,當為連續(xù)值時,表明為回歸問題,則通過對各單一決策樹的預測結(jié)果進行加權(quán)平均得到最終的預測值。隨機森林是一種非線性建模工具,精度高且具備一定的容忍度,不易出現(xiàn)過擬合[18]。
RF模型含有許多重要參數(shù),參數(shù)的不同取值組合可以產(chǎn)生不一樣的結(jié)果。為得到更好的預測精確度,需對模型的重要參數(shù)進行調(diào)參操作。現(xiàn)有的學習曲線調(diào)參步驟復雜、訓練時間長,因此提出GA-RF模型,在搜索空間內(nèi)利用GA算法對RF模型的重要參數(shù)尋優(yōu),使RF的調(diào)參過程更加高效、便捷。
GA-RF交通流缺失值修復模型的修復流程如圖2所示,包括數(shù)據(jù)處理模塊、參數(shù)調(diào)優(yōu)模塊和預測修復模塊。
圖2 基于GA-RF模型的交通流缺失值修復框架圖
首先,數(shù)據(jù)處理模塊先剔除異常數(shù)據(jù),用剔除異常數(shù)據(jù)后的歷史交通流數(shù)據(jù)構(gòu)造樣本訓練集及測試集;然后參數(shù)調(diào)優(yōu)模塊采用遺傳算法對RF中樹模型的數(shù)量(n_estimators)、最大深度(max_depth)、節(jié)點分支后每個子節(jié)點最少包含的訓練樣本(min_sample_leaf)、1個節(jié)點能進行分支的最少訓練樣本(min_samples_split)4個參數(shù)在搜索空間進行優(yōu)化,確定參數(shù)的最佳組合;預測修復模塊利用構(gòu)造好的訓練集以及尋優(yōu)后的參數(shù)組合對RF模型進行訓練,形成GA-RF模型,最后將測試數(shù)據(jù)輸入GA-RF模型中進行預測修復,對修復值與真實值進行誤差分析并輸出。
基于隨機森林算法對交通流缺失數(shù)據(jù)進行修復的基本原理為:將剔除異常數(shù)據(jù)后的歷史交通流數(shù)據(jù)分為樣本訓練集及測試集,利用訓練集數(shù)據(jù)訓練模型,測試集數(shù)據(jù)判斷模型預測精度;然后將路段的真實待修復數(shù)據(jù)集中的缺失數(shù)據(jù)列作為待預測對象,利用訓練好的模型對其進行預測修復。假設(shè)目標路段在某段時間內(nèi)的平均速度的數(shù)據(jù)集為X_data,觀測時間間隔為5 min,X_data共有M行,每行有N維特征,則數(shù)據(jù)集X_data可表示為:
式中:Y為目標變量標簽列,X為Y的特征向量矩陣,從交通流時間序列相關(guān)性出發(fā)構(gòu)造特征向量,即令xt為t時刻目標路段交通流,xt-n為t時刻前第n個時刻的交通流,則交通流時間序列相關(guān)性可表示為:
式(2)表明,當前時刻路段交通流與其前n個時段交通流相關(guān),其中xt相當于式(1)中的目標變量標簽列Y,xt-1至xt-n則相當于式(1)中的特征向量X,則從初始時刻到t時刻,樣本數(shù)據(jù)集中的特征向量矩陣X如式(3)所示,目標向量Y如式(4)所示:
由于交通流時間序列數(shù)據(jù)存在缺失值,因此,考慮時間序列相關(guān)性構(gòu)造的特征向量也存在缺失數(shù)據(jù),而用于模型訓練的數(shù)據(jù)應(yīng)是完整數(shù)據(jù)集,故從構(gòu)建好的X_data數(shù)據(jù)集中提取各特征均不包含nan值的數(shù)據(jù)行特征集合作為最終的訓練集,按一定比例將其劃分為訓練數(shù)據(jù)集(X_train,Y_train)、驗證集(X_val,Y_val),其中訓練數(shù)據(jù)集用于模型的訓練,驗證集則用于模型的調(diào)參。為明確模型的修復精度,選擇交通流數(shù)據(jù)較為完整的某天數(shù)據(jù)作為測試集,人為隨機構(gòu)造缺失值,利用訓練好的模型對缺失數(shù)據(jù)進行預測修復,比較修復值與真實值的誤差,對模型預測修復精度進行評價。最后,提取Y為nan的數(shù)據(jù)行作為路段的真實待修復數(shù)據(jù)集合,利用構(gòu)建好的GA-RF模型修復路段交通流中的缺失數(shù)據(jù)。
RF的重要參數(shù)及其含義如表1所示。
表1 隨機森林模型重要參數(shù)
以平均絕對誤差(MAE)作為評價指標,參數(shù)調(diào)優(yōu)過程就是通過不斷迭代,尋求以上4個重要參數(shù)的最佳組合,使基于該參數(shù)組合的模型具有最低的MAE。整個過程是一個全局尋優(yōu)問題,在眾多參數(shù)組合中尋找最優(yōu)參數(shù)組合。
遺傳算法是通過模擬生物在自然環(huán)境中的遺傳和進化過程形成的自適應(yīng)全局優(yōu)化搜索算法,可用于不同領(lǐng)域的參數(shù)尋優(yōu)、路徑規(guī)劃等,其運算過程主要包含初始種群的產(chǎn)生、個體適應(yīng)度的計算、根據(jù)適應(yīng)度值對種群中的個體進行選擇、交叉以及變異、產(chǎn)生新種群,以此循環(huán),迭代直至滿足條件后終止[19-20]。GA優(yōu)化RF主要采用GA對RF模型參數(shù)進行尋優(yōu),使模型預測性能在一定程度上達到最優(yōu)。采用GA對RF的n_estimators、max_depth、min_samples_leaf、min_samples_split進行調(diào)優(yōu),獲取搜索空間的最優(yōu)參數(shù)組合,構(gòu)成GARF模型。參數(shù)調(diào)優(yōu)具體步驟如下:①種群初始化并進行編碼;②將RF模型的MAE作為適應(yīng)度函數(shù);③將解的個體進行選擇交叉變異操作,進行解碼;④獲得適應(yīng)度目標值和最佳參數(shù);⑤計算基于最佳參數(shù)的MAE;⑥終止條件判斷,若未達到迭代次數(shù),則返回③繼續(xù)計算;若達到迭代次數(shù),則停止計算,輸出調(diào)優(yōu)參數(shù)的最佳組合。
GA-RF數(shù)據(jù)修復方法的最后一步為利用構(gòu)造好的訓練集(X_train,Y_train)以及尋優(yōu)后的參數(shù)組合對GA-RF模型進行訓練,然后利用訓練好的模型對缺失數(shù)據(jù)測試集進行預測修復,選定評價指標對修復結(jié)果進行評價。設(shè)時間窗窗口長度為5,即假定待修復時刻交通流與其前5個時刻的交通流數(shù)據(jù)相關(guān),則待修復缺失數(shù)據(jù)集數(shù)據(jù)結(jié)構(gòu)如表2所示。
如表2所示,某時段內(nèi)存在待修復缺失數(shù)據(jù),取缺失數(shù)據(jù)所在時刻的前5個時刻的平均速度數(shù)據(jù)作為特征矩陣,對缺失數(shù)據(jù)進行預測修復。由于5個特征向量是由目標變量標簽列衍生的,故特征向量中也存在缺失值,且該缺失值來自于當前待修復時刻的先前時刻。因此,只要第1個缺失數(shù)據(jù)的前5個數(shù)據(jù)不存在nan,即可通過構(gòu)造特征向量、提取待修復缺失數(shù)據(jù)、預測修復的循環(huán)操作實現(xiàn)對缺失數(shù)據(jù)的全部填充,缺失數(shù)據(jù)修復具體步驟如下:
表2 待修復缺失數(shù)據(jù)集數(shù)據(jù)結(jié)構(gòu)
步驟1 考慮交通流時間序列相關(guān)性對含缺失數(shù)據(jù)的M個交通流數(shù)據(jù)進行N維特征向量提取,形成M行N+1列數(shù)據(jù)矩陣row_data;
步驟2提取row_data中標簽列為nan的數(shù)據(jù)行,構(gòu)成待修復缺失數(shù)據(jù)集missing_data;
步驟3判斷第1個缺失數(shù)據(jù)所有特征列是否含有nan,有轉(zhuǎn)步驟4,無則轉(zhuǎn)步驟5;
步驟4采用缺失值所在時段的均值對nan進行修復,并實時更新row_data;
步驟5 提取missing_data中特征列完整的數(shù)據(jù)行,調(diào)用構(gòu)建好的模型對缺失數(shù)據(jù)進行預測修復,并用修復后的缺失數(shù)據(jù)實時更新row_data中對應(yīng)的缺失數(shù)據(jù),然后轉(zhuǎn)回步驟2,反復進行,直至missing_data行數(shù)等于0,則所有缺失數(shù)據(jù)修復完畢。
為了驗證所提出的GA-RF模型的可行性,選用重慶市南岸區(qū)某路段的交通流數(shù)據(jù)展開GA-RF模型實證:在測試數(shù)據(jù)集中隨機構(gòu)造少量缺失數(shù)據(jù),以MAE為主要評價指標,均方根誤差(RMSE)、均方誤差(MSE)、平均絕對百分比誤差(MAPE)評價指標作為輔助,以主要評價指標最小為目標,對缺失數(shù)據(jù)修復的有效性進行評價,并在同等缺失比例下將GA-RF的修復效果與RF方法、歷史均值法及歷史相鄰加權(quán)法修復效果進行對比實驗。
全部代碼均通過Python程序語言實現(xiàn),Anacond包中的spyder4.1.3版本作為集成開發(fā)環(huán)境,Windows 10(64位)操作系統(tǒng)、Intel(R)Core(TM)i5-10210U CPU@2.11 GHz處理器、16GB內(nèi)存等作為硬件支撐平臺。
以重慶市南岸區(qū)某路段的歷史交通流平均速度數(shù)據(jù)作為實驗數(shù)據(jù),用于GA-RF的交通流缺失數(shù)據(jù)修復實驗。實驗采集了該路段從2018.07.21—2019.06.26的交通流平均速度,由于本次研究只針對工作日,故提取數(shù)據(jù)集中的工作日數(shù)據(jù),構(gòu)建從0∶00-24∶00、以5 min為增長梯度的完整時間序列。數(shù)據(jù)集的平均速度分布如圖3所示,橫坐標表示時段分布,縱坐標表示該時段的平均速度,圖中數(shù)據(jù)集應(yīng)包含62 784個交通流數(shù)據(jù),對數(shù)據(jù)集進行分析,部分數(shù)據(jù)存在缺失和異常。
圖3 數(shù)據(jù)集平均速度分布
將構(gòu)造后的時間序列與原始時間序列進行笛卡爾積,挖掘原始樣本中的缺失數(shù)據(jù),共計1 284條,并以nan進行標識,則以天為計量單位的路段交通流缺失數(shù)據(jù)分布情況如圖4所示。
圖4 以天為計量單位的缺失數(shù)據(jù)分布
異常值分析是保證數(shù)據(jù)質(zhì)量的前提,找出數(shù)據(jù)的異常值,有利于最終得出的模型的穩(wěn)定性。利用箱型圖剔除異常值獲取離群數(shù)據(jù)(包含離群數(shù)據(jù)1 834條),剔除離群數(shù)據(jù)后缺失數(shù)據(jù)分布如圖5所示。
圖5 剔除異常值后的缺失數(shù)據(jù)分布
圖4、5橫坐標表示第n個工作日,縱坐標為缺失數(shù)據(jù)個數(shù)。由圖5可知,2018.07.21—2019.06.26期間,該路段每天的缺失和異常數(shù)據(jù)大多穩(wěn)定在5~25,缺失比例在2%~9%,只有個別工作日的缺失值個數(shù)超過10%。
交通流預測時間窗口為5,即利用待修復時刻的前5個時刻的交通流數(shù)據(jù)作為特征列對模型進行訓練、預測,然后利用預測結(jié)果對缺失數(shù)據(jù)進行修復。將2019年6月14日之前的工作日數(shù)據(jù)作為訓練數(shù)據(jù)集,用GA對RF的n_estimators、max_depth、min_samples_leaf以及min_samples_split4個參數(shù)進行聯(lián)合尋優(yōu),以MAE作為目標函數(shù)返回值,衡量在每種參數(shù)組合下模型在未知數(shù)據(jù)上的準確率,誤差越大,表明模型的預測效果越不好,因此,全局優(yōu)化是一個求最小值的過程,設(shè)置初始種群中個體NIND為10,迭代次數(shù)為200,交叉概率pc為0.7,變異概率pm為0.1。
在利用遺傳算法確定最佳參數(shù)組合的200次迭代中,各參數(shù)搜索空間如表3所示。
表3 待優(yōu)化參數(shù)搜索空間
經(jīng)過訓練,訓練結(jié)果如圖6所示,橫坐標代表迭代次數(shù),縱坐標代表MAE,在GA-RF模型中,隨迭代次數(shù)的增加,模型在驗證集上最優(yōu)解的MAE越來越小,最終呈現(xiàn)為平行于x軸的一條直線(如圖7所示),找到搜索空間的最優(yōu)解,得到最佳參數(shù)。
圖6 GA-RF模型訓練曲線
圖7 GA-RF預測模型收斂曲線
為評價模型的修復精度,在測試數(shù)據(jù)集中,選6月24日交通流數(shù)據(jù)作為測試數(shù)據(jù),構(gòu)造3%、6%缺失比例的隨機缺失數(shù)據(jù),利用GA-RF模型分別對2種比例缺失的數(shù)據(jù)進行預測修復實驗,并將GA-RF模型預測修復結(jié)果與RF預測修復、歷史均值修復、歷史相鄰加權(quán)法結(jié)果進行對比。圖8、圖9給出了3%和6%的缺失比例下,采用RF、GA-RF、歷史均值法以及歷史相鄰加權(quán)法4種修復方法的修復結(jié)果與真實值的對比曲線,每一個marker為一缺失數(shù)據(jù)。由圖8、9可看出,GA-RF模型的預測修復結(jié)果曲線較其他幾種方式更貼近原始數(shù)據(jù)曲線。
圖8 3%缺失比例下多種修復方法效果
圖9 6%缺失比例下多種修復方法效果
為進一步客觀評價不同修復方法的修復效果,以MAE為主要評價指標,均方根誤差(RMSE)、均方誤差(MSE)、平均絕對百分比誤差(MAPE)評價指標作為輔助對缺失數(shù)據(jù)修復的有效性進行評價,以主要評價指標最小為目標,得到不同修復方法下的修復誤差,如表4所示。
表4 不同修復方法誤差 %
從表4中可以看出,目標路段測試數(shù)據(jù)在實證的2種缺失比例下使用GA-RF模型進行預測修復的MAE、RMSE、MSE、MAPE均比RF模型、歷史均值和歷史相鄰加權(quán)的小,MAE反映了修復數(shù)據(jù)偏離真實值的程度,其值越小表示修復值與真實值的偏離程度越小,說明兩者越近,修復精度更高。
經(jīng)過GA優(yōu)化后的RF在2種缺失比例下的預測修復精度均得到了提升,其中,在缺失比例為3%時,參數(shù)調(diào)優(yōu)后的MAE從5.00減少到4.11,準確率提升了17.8%。
利用GA-RF交通流缺失數(shù)據(jù)修復方法,將目標路段數(shù)據(jù)以天為單位進行分組循環(huán)預測修復,選取2019年6月24日的全天交通流數(shù)據(jù),當日數(shù)據(jù)缺失比例、缺失時間分布如表5所示。
表5 真實值修復數(shù)據(jù)基礎(chǔ)信息
目標路段當天路段缺失值共有4個,缺失比例約1%。圖10繪制了2019年6月24日全天各時段的平均速度數(shù)據(jù),其中“?”標識處表明該時段數(shù)據(jù)缺失,圖中為GA-RF模型預測的修復值,其余線條部分為真實交通流數(shù)據(jù)值。
圖10 2019年6月24日缺失數(shù)據(jù)修復效果
由圖10可知,利用GA-RF模型進行預測修復的交通流缺失數(shù)據(jù)均符合路段交通流整體走勢,修復結(jié)果可靠,可作為交通流預測研究依據(jù)。
1)基于遺傳算法優(yōu)化隨機森林構(gòu)建的預測模型能很好地實現(xiàn)對5%左右數(shù)據(jù)缺失的交通流數(shù)據(jù)修復。
2)GA-RF模型預測修復效果優(yōu)于RF模型,采用GA-RF的重要參數(shù)進行尋優(yōu)是有必要的,能在一定程度上降低模型的預測誤差,提升模型預測準確性。
3)采用GA-RF模型對5%左右數(shù)據(jù)缺失下的交通流進行預測修復所得到的MAE、RMSE、MSE、MAPE均低于同等缺失比例下的歷史均值法修復誤差、歷史相鄰加權(quán)法修復誤差,GA-RF模型的修復精度更高。