吳維芝,施三支
(長春理工大學(xué) 數(shù)學(xué)與統(tǒng)計學(xué)院,長春 130022)
在實際生活中,無時無刻不在產(chǎn)生具有混合分布的時間序列數(shù)據(jù)。這些數(shù)據(jù)通常具有復(fù)雜的特性,如非平穩(wěn)性和周期性等,還包含大量的隱含信息和一定的變化規(guī)律。因此,挖掘和分析混合分布時間序列中的有效信息,對日常生活和生產(chǎn)活動等具有十分重大的意義。
處理該類時間序列數(shù)據(jù)問題的方法多種多樣,如Zhangyulai等人[1]提出了一種新的非平穩(wěn)時間序列建模優(yōu)化算法,該算法采用移動窗口和指數(shù)衰減權(quán)值來消除歷史梯度的影響,能夠保證算法的收斂性。楊楠等人[2]采用混合高斯分布對時間序列數(shù)據(jù)進行建模,得到的模型具有較高的精度和泛化性能。Grunwald等人[3]使用馬爾科夫鏈建立和估計混合分布變量時間序列。Guo等人[4]提出了一種低維中期混沌時間序列預(yù)測的延遲參數(shù)化方法,具有較高的預(yù)測效果。闞子良等人[5]基于優(yōu)化機器學(xué)習(xí)使用遺傳算法優(yōu)化參數(shù),對股價時間序列數(shù)據(jù)進行預(yù)測,該方法預(yù)測精度高且泛化能力好、魯棒性強。Shao等人[6]提出了LSTM神經(jīng)網(wǎng)絡(luò)對具有非平穩(wěn)性的街邊停車位占用率數(shù)據(jù)進行預(yù)測,該方法優(yōu)于現(xiàn)有的預(yù)測方法。谷麗瓊等人[7]提出了基于Attention機制的GRU神經(jīng)網(wǎng)絡(luò)并應(yīng)用于非線性波動的股票數(shù)據(jù),結(jié)果表明該方法的預(yù)測優(yōu)化是可行和有效的。上述方法盡管都能較為準(zhǔn)確的對未來時刻的行為作出預(yù)測,但無法克服數(shù)據(jù)波動對預(yù)測效果帶來的負(fù)面影響。本文提出了一種K-均值聚類與GRU神經(jīng)網(wǎng)絡(luò)相結(jié)合的模型——K-GRU模型,通過K-均值聚類處理能夠降低據(jù)波動導(dǎo)致的時間序列內(nèi)部差異,有利于GRU神經(jīng)網(wǎng)絡(luò)更好地作出預(yù)測。
本文對不同分布下構(gòu)造的時間序列進行了仿真實驗。通過不同場景中的仿真實驗得到預(yù)測誤差,再與多項式模型、傅里葉序列、LSTM模型和GRU模型進行比較,仿真結(jié)果表明本文所提的K-GRU混合模型具有較高的預(yù)測精度,最后將K-GRU混合模型應(yīng)用于街邊停車位占用率預(yù)測。
本節(jié)介紹了K-GRU混合模型相關(guān)的理論知識,并給出了算法步驟。
GRU是LSTM網(wǎng)絡(luò)的一種效果很好的變體。它和LSTM一樣具有門控循環(huán)單元,而GRU神經(jīng)網(wǎng)絡(luò)僅需要兩個門控循環(huán)單元即可解決梯度消失和梯度爆炸的問題。因此,它比LSTM網(wǎng)絡(luò)的結(jié)構(gòu)更加簡單,而且訓(xùn)練速度也更快。具體結(jié)構(gòu)如圖1所示。
圖1 GRU模型結(jié)構(gòu)圖
在GRU模型中只有兩個門,分別是重置門rt和更新門zt。重置門控制前一時刻狀態(tài)有多少信息被寫入到當(dāng)前的候選集上,重置門越小,前一狀態(tài)的信息被寫入的越少。更新門由LSTM中的遺忘門和輸入門結(jié)合而成,更新門的作用是控制前一時刻的隱藏狀態(tài)信息被轉(zhuǎn)移到當(dāng)前狀態(tài)中的程度,更新門的值越大說明前一時刻的狀態(tài)信息轉(zhuǎn)入越多,相反,更新門越小,前一狀態(tài)的信息被轉(zhuǎn)入得越少。
其中,w、u、wr、ur、wz、uz為神經(jīng)網(wǎng)絡(luò)權(quán)值;t為時間步長;xt為輸入值;?t為輸出值;⊙為不同矩陣的Hadamard積;yt為當(dāng)前時刻輸出值。
聚類是數(shù)據(jù)挖掘和分析的主要研究領(lǐng)域之一。常用的聚類方法有K-均值聚類[8-9]、層次聚類[10-11]、SOM 聚類[12-13]等。
K-均值聚類算法由于在處理大量數(shù)據(jù)方面的簡單性和速度而在以前的研究中被認(rèn)為是一種廣泛使用的聚類算法[14],因此本文采用K-均值對混合分布的時間序列數(shù)據(jù)進行聚類。通過K-均值聚類可以把較長的時間序列按K個初始聚類中心進行聚類,將原本單個的時間序列聚為K個序列,達到降低序列內(nèi)部差異的效果。K-均值算法需要計算各個樣本點到中心點的距離,常用的距離為歐氏距離,計算公式如下:
基于聚類的GRU混合模型的結(jié)構(gòu)圖,如圖2所示。
圖2 基于聚類的K-GRU混合模型
具體步驟如下:
(1)數(shù)據(jù)采集和數(shù)據(jù)預(yù)處理??赏ㄟ^計算機語言生成模擬實驗數(shù)據(jù)或數(shù)據(jù)網(wǎng)站下載相關(guān)數(shù)據(jù)。然后進行數(shù)據(jù)清洗、刪除或補齊缺失值、歸一化等。
(2)K-均值聚類。使用K-均值對步驟(1)中得到的數(shù)據(jù)進行聚類。
(3)劃分樣本。對每個類都進行訓(xùn)練集與測試集的劃分,劃分比例為8∶2。
(4)GRU神經(jīng)網(wǎng)絡(luò)訓(xùn)練。使用劃分好的訓(xùn)練集進行神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。
①第一層為GRU層,設(shè)置輸入維度、輸出維度和 return_sequences、return_sequences為 False,返回單個時間步長的隱藏狀態(tài)的值,若為True,則返回全部的隱藏狀態(tài)值。
②設(shè)置Dropout即隨機失活率,Dropout是在訓(xùn)練過程中隨機地忽略一些神經(jīng)元,它會刪除一些節(jié)點,以及網(wǎng)絡(luò)與被刪除節(jié)點之間的連接。
③第二層為GRU層,輸入維度即為上一層的輸出維度,設(shè)置return_sequences以及Dropout的取值。
④第三層是全連接層Dense層,網(wǎng)絡(luò)訓(xùn)練的損失函數(shù)選擇均方誤差,選擇優(yōu)化器rmsprop。
(5)輸入測試樣本進行測試。
(6)計算并輸出預(yù)測誤差。通過對神經(jīng)網(wǎng)絡(luò)參數(shù)的調(diào)整,以達到誤差最小。
本文的算法流程如圖3所示。
圖3 算法流程圖
為評價模型的性能,利用隨機生成的數(shù)據(jù)進行了一系列的模擬實驗。在python3.7環(huán)境下使用tensorflow2.0訓(xùn)練預(yù)測模型,實驗計算機的物理核心為8核,邏輯核心為4核,顯存大小為2 G,內(nèi)存為32 G,儲存空間為1 T。
為了便于比較不同方法在占用率預(yù)測實驗中的表現(xiàn),使用平均絕對誤差(Mean absolute error,MAE)和均方誤差(Mean squared error,MSE)來描述實驗誤差。
平均絕對誤差(Mean absolute error,MAE):
均方誤差(Mean squared error,MSE):
本節(jié)分別在三個場景中比較了多項式模型、傅里葉變換、LSTM模型、GRU模型與GRU混合模型的預(yù)測效果。設(shè)置樣本量為n=5 369,其中場景A表示由數(shù)據(jù)量為5∶2的兩個時間序列數(shù)據(jù)構(gòu)成,分布分別為N~(0.3,0.1)和N~(0.2,0.09);場景B表示由數(shù)據(jù)量為5∶2的兩個時間序列數(shù)據(jù)構(gòu)成,分布分別為 N~(0.3,0.1)和 Be~(0.19,0.66);場景C表示生成均值為0.25,標(biāo)準(zhǔn)差分別為0.1~0.5的正態(tài)分布。模擬實驗數(shù)據(jù)均使用R語言生成。
圖4 場景A各方法預(yù)測誤差比較
表1為場景A中各方法預(yù)測誤差的具體數(shù)值,可以看出多項式模型、傅里葉序列、LSTM模型和GRU模型的預(yù)測效果幾乎一致,K-GRU混合模型預(yù)測效果明顯優(yōu)于前面四種方法。KGRU混合模型在聚類數(shù)為4時,MAE和MSE都降到最低,分別為3.008%和0.170%,而當(dāng)聚類數(shù)為5時,MAE和MSE都比聚類數(shù)為4時的MAE和MSE稍大。通過圖6也可以看出,K-GRU混合模型的預(yù)測效果顯著優(yōu)于前面四種方法(標(biāo)注*的數(shù)字為最佳預(yù)測結(jié)果)。
表1 場景A各方法預(yù)測誤差
表2為場景B中各方法預(yù)測誤差的具體數(shù)值,可以看出多項式模型、傅里葉序列、LSTM模型和GRU模型的預(yù)測效果幾乎一致,K-GRU混合模型預(yù)測效果明顯優(yōu)于前面四種方法。K-GRU混合模型隨著聚類數(shù)增加,MAE和MSE都在下降,但聚類數(shù)為5時,MAE和MSE的下降幅度明顯變小。通過圖5也可以看出,K-GRU混合模型的預(yù)測效果顯著優(yōu)于前面四種方法,且聚類數(shù)為5時,誤差下降幅度明顯減緩(標(biāo)注*的數(shù)字為最佳預(yù)測結(jié)果)。
表2 場景B各方法預(yù)測誤差
圖5 場景B各方法預(yù)測誤差比較
圖 6(a)和圖 6(b)分別為場景C中各方法預(yù)測的MAE和MSE,可以看出在樣本量固定的情況下,隨著標(biāo)準(zhǔn)差的增加,并未對預(yù)測結(jié)果的MAE和MSE造成較大的波動,說明預(yù)測模型具有魯棒性。K-GRU混合模型在聚為2類、3類、4類和5類的情況下都比多項式模型、傅里葉序列、LSTM模型和GRU模型的預(yù)測效果更好,隨著聚類數(shù)的增加,K-GRU混合模型的MAE和MSE的下降幅度變緩。
圖6 場景C中各方法預(yù)測的MAE及MSE
本文使用的數(shù)據(jù)是2018年12月1日到2019年2月28日深圳市南山區(qū)招商路90天的歷史街邊停車數(shù)據(jù)。在該數(shù)據(jù)集中,記錄到招商路總共59個有效停車位,共計18 899條停車記錄。圖7是招商路的地理位置及街邊實景圖。
圖7 招商路百度地圖及街邊實景圖,有效停車位共59個
在數(shù)據(jù)預(yù)處理過程中,數(shù)據(jù)按10 min的時間間隔統(tǒng)計停車位的占用數(shù)量,并根據(jù)總的有效停車位數(shù)量計算街邊停車位的占用率。經(jīng)過數(shù)據(jù)預(yù)處理后,可以得到時間從10:10分到19:50分,共計5 310條時間間隔為10 min的街邊停車位占用率數(shù)據(jù)。招商路三個月的停車位占用率變化趨勢如圖8所示。
圖8 招商路的停車位占用率
通過圖8可以看出,招商路的街邊停車占用率符合一般的停車規(guī)律,即周末占用率普遍偏高,工作日的占用率普遍偏低,可看作是以一個星期為周期的時間序列。
根據(jù)圖8,對招商路的周末和工作日占用率數(shù)據(jù)進行描述統(tǒng)計,分別得到兩個Q-Q圖,如圖9和圖10,可以看出周末的占用率服從正態(tài)分布,工作日的占用率服從beta分布。
圖9 招商路周末的街邊占用率正態(tài)Q-Q圖
圖10 招商路工作日的街邊占用率beta Q-Q圖
將K-GRU混合模型應(yīng)用于招商路的實際占用率數(shù)據(jù),并與多項式擬合、傅里葉級數(shù)、LSTM、GRU四個方法進行了比較。其中多項式和傅里葉級數(shù)的階數(shù)分別取8和12,LSTM和GRU的激活函數(shù)為 linear,epochs為 30,bitch_size為 500,訓(xùn)練集與測試集的比例均為8∶2。實驗結(jié)果如表3所示。
表3 招商路各方法預(yù)測結(jié)果
由表3可以看出,K-GRU混合模型的實驗誤差比多項式模型、傅里葉序列、LSTM和GRU都小。隨著聚類數(shù)的增加,MAE和MSE都在下降,但聚類數(shù)為5時,混合模型的預(yù)測誤差開始上升。聚為4類時,K-GRU混合模型的表現(xiàn)最好,MAE為3.315%,MSE為0.173%。
圖 11(a)和圖 11(b)分別為招商路各方法占用率預(yù)測的MAE和MSE值的條形圖,可以看出使用多項式模型和傅里葉序列進行預(yù)測的實驗誤差很高,LSTM、GRU和GRU混合模型的實驗誤差都明顯低于前兩種方法。在混合模型中,實驗誤差隨著聚類數(shù)增加而降低,聚類數(shù)為4時,MAE和MSE都達到了最低,分別為3.315%和0.173%,但聚類數(shù)達到5時,MAE和MSE略微上升。
圖11 招商路各方法預(yù)測結(jié)果的MAE及MSE
從圖 12(a)和圖 12(b)可以看出,K-GRU 混合模型在分別聚為2類、3類、4類和5類時預(yù)測的MAE比多項式模型和傅里葉序列預(yù)測的MAE下降比例超過了60%,MSE比多項式模型、傅里葉序列的MSE下降比例超過了80%。K-GRU混合模型在聚類處理后MSE比LSTM的MSE下降超過40%。K-GRU混合模型的MSE比GRU的MSE下降超過20%。聚類數(shù)達到4的時候,MAE及MSE下降百分比達到最高。
圖12 K-GRU混合模型預(yù)測的MAE及MSE下降的百分比的條形圖
本文提出了K-GRU神經(jīng)網(wǎng)絡(luò)混合模型,使用K-GRU混合模型對混合分布下的時間序列數(shù)據(jù)進行預(yù)測。利用R語言隨機生成的數(shù)據(jù)進行了仿真實驗,并且將混合模型應(yīng)用于實際的街邊停車位占用率預(yù)測中。與多項式回歸模型、傅里葉級數(shù)、LSTM神經(jīng)網(wǎng)絡(luò)、GRU神經(jīng)網(wǎng)絡(luò)相比,本文所提的方法具有較低的預(yù)測誤差。通過仿真實驗結(jié)果,K-GRU混合模型在聚類數(shù)為4時,通常能得到最佳預(yù)測效果。而聚為5類時,預(yù)測誤差下降幅度變緩甚至?xí)晕⑸仙F湓蚴枪潭颖玖康臈l件下,隨著聚類數(shù)增加,每個類的樣本量變小,神經(jīng)網(wǎng)絡(luò)從單個類中無法學(xué)習(xí)到完整的信息。