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