曹振麗



摘要:在傳感器獲取的實時數據流應用中,對數據流的實時預測不同于一般的時間序列數據,針對不僅須要考慮到資源受限的情況,數據項不能多次查找重復遍歷,還要求算法能滿足自適應地在線實時處理、滿足用戶的誤差等要求問題,提出一種基于時間粒度的自適應調整灰色模型的數據流預測方法,引入時間粒度的概念,將未來數據流的實時預測分為粗粒度預測和細粒度預測2種,分別采用基于灰色一階模型和基于灰色二階模型進行預測對比。結果表明,隨著滑動窗口更新周期的增大,預測的成功率反而下降;隨著采樣頻率的變大,預測成功率降低;隨著未來數據窗口寬度的增加,預測的平均相對誤差增大,基于二階灰色模型對近期的數據預測比較準確,滿足了系統的需求。
關鍵詞:時間粒度;數據流;預測方法;滑動窗口;采樣頻率
中圖分類號: TP274+.2文獻標志碼: A
文章編號:1002-1302(2017)09-0198-04
目前,智慧農業、精準農業下傳感器采集到的數據流都是與時間屬性密切相關的時間序列數據流,數據流是一系列快速、按時間先后順序到達的數據項組成的有序序列集合。由于數據流的持續性、高速性,隨著時間的流逝,理論上數據流的數據量可以達到無限大,而數據流實時處理的要求又使系統不能進行開銷巨大的磁盤存取,另外,系統存儲空間具有有限性,這些都導致無法保存整個數據流,因而數據流中的數據項只能被讀取1次,一旦被處理過,將不能再次重現。也就是說,數據流中的數據不再是從內存和磁盤中隨機訪問讀取的數據,數據流中只有部分數據能被系統保存,并隨著新數據的到來而不斷地進行更新,數據流系統在大多數情況下無法處理全部的數據。很多情形下,人們為滿足數據流實時性的要求,只需得到一定誤差范圍內的近似結果即可,這就導致預測的結果并不總是盡如人意。
在我國,張晗等采用基于小波分解的方法,將非平穩的網絡流量時間序列分解為平穩的流量時間序列,最終建立預測模型[1],但該研究過多地關注預測結構的準確性,未考慮時空復雜度的問題,并非真正意義上的數據流預測。孫占全等采用基于分層抽樣與k均值聚類相結合的方法進行抽樣,實現了基于支持向量機與抽樣相結合的交通流預測[2],但該方法實際上用的是靜態數據,并不是針對動態數據流,因此能否用于數據流的實時預測有待驗證。在國外,Telec等利用神經網絡預測數據流來分析其變化趨勢[3];Wakabayashi等提出了一個新的時間序列預測技術,使用增量式的隱馬爾科夫模型在線訓練方法對數據流進行預測[4];Mimran等研究了具有多個滑動窗口的數據流挖掘的連續預測[5];Bosnic等研究了如何提高數據流預測的準確率和可解釋性[6]。
綜上所述,由于數據流的來源眾多,很多數據流的變化過程隨時間的變化呈現出非單調的有擺動的特征,再加上人們對監測到的數據流的最終需求不同,因此,到目前為止沒有一種通用的數據流預測模型。目前已有的一些研究采用對數據流中數據的瞬時值進行預警調控,這就會出現一種弊端,當某一時刻的數據值為噪聲值時,這種瞬時值操作處理方式會直接導致監測與控制系統出現錯誤操作,從而引起其他環境參數的變化,給畜禽養殖帶來影響。因此,在實際應用中,應根據需求進行相關的設計和分析,開展數據流上的專用預測模型的研究,動態實時高效地實現對數據流的預測。
在豬舍中安放多個傳感器,通過無線傳感網絡采集數據流,設定一定的采樣頻率,對豬舍的溫度、濕度、二氧化碳濃度、氨氣濃度、光照等進行相應的監測,由于環境的變化,會導致畜禽產生各種應激反應,甚至會引發各種疾病,給用戶造成巨大的經濟損失。因此,在對畜禽養殖環境狀況的數據流監測的同時進行實時預測,從而進行相關調控,使豬在適宜的環境中生長。試驗通過設計相應的預測處理模型來對傳感器所感知的數據流的未來發展趨勢進行實時預測,不僅有利于人們準確可靠地了解監測對象的狀況,而且對于人們深入了解監測對象的內在規律及時采取相應的措施具有積極的意義。
本研究引入時間粒度的概念,對于未來數據窗口的長度w與滑動窗口的更新周期Δt間的關系分為細粒度、粗粒度2種情況進行討論,并設計了基于灰色一階模型GM(1,1)、灰色二階模型GM(2,1)的數據流預測算法進行了對比預測與分析,達到了預期的要求。
1算法設計
源源不斷的數據流首先到達基于時間的滑動窗口,設置滑動窗口的更新周期為Δt,每隔Δt時間,滑動窗口進行更新,將該窗口內的數據移到位于內存的數據緩沖區中,滑動窗口繼續接收新數據。在系統中共有m個緩沖區,編號分別為緩沖區1、緩沖區2、…、緩沖區m,該緩沖區以循環隊列的方式進行存儲。
滑動窗口中的數據按照緩沖區編號由小到大進入,緩沖區的編號越大,表示存儲的數據離現在時刻越近,數據越新?;瑒哟翱谥性M的個數一定,隨著采樣頻率的變化,滑動窗口的更新周期也隨之變化,由于數據緩沖區的大小有限,因此,隨著新數據的不斷到來,當緩沖區中的數據存滿后,每隔一定的周期,數據緩沖區中離現在最久遠的數據會被最先移出。預測查詢處理器對用戶注冊的預測進行查詢,并將預測查詢的結果實時返回給系統。
為了提高系統的處理效率,數據緩沖區以循環隊列的方式進行數據的存儲,從而降低系統更新開銷;在滑動窗口部分采用了鏈式可重寫窗口技術,當窗口已滿時,要移入的數據直接覆蓋原來的數據,從而窗口內數據不必移動。
設數據流的開始時間、當前時間分別為t1、t2,且t2>t1,區間[t1,t2]上包含有n個為滑動窗口,記為window1,window2,…,windown,其中n= t2-t1Δt ,n為整數,Δt為滑動窗口的更新周期。在第k個數據緩沖區中存放的是第n-m+k個時間間隔的滑動窗口中的數據,其中k=1,2,…,m,表示數據緩沖區中緩沖區的個數。
由于不同的時間段,人們的關注點會有所不同,例如在當前的24 h內人們關心的是某個小時環境因子的狀態,而在某個小時內,人們可能關注的是某分鐘內的變化情況,甚至在某分鐘內,人們可能關注的是某秒的變化,這些問題反映到時間上與人們關注的時間粒度[7]有關系。
文獻[7]中引入了時間粒度這一概念,將時間域劃分為離散時間域、連續時間域,下面給出兩者的相關定義,T表示時間間隔的一個子集,其中T≠φ。
當一個時間域是由無窮時間間隔組成的集合,且有ts,te∈T,ts 當一個時間域中除了第1個元素沒有直接前驅元素、最后一個元素沒有直接后繼元素外,其他元素都有直接前驅元素、直接后繼元素,則稱該時間域為離散時間域。 從時間域的定義可以看出,在粒度空間中,每個較小的時間粒度經過一定周期的時間間隔可以組成較大的時間粒度。從時間粒度的角度分析,預測時間的跨度會對預測的準確率造成一定的影響,因此須要根據預測的時間跨度采取自適應調整策略。 對數據流中數據值的實時預測需要一種既能反映個體特征,又能反映總體趨勢的預測方法。本研究采用自適應基于灰色模型[8]的數據流預測算法,針對時間序列數據流中的數據進行粗粒度或細粒度預測,即數據流中某一時刻的值不僅僅與該數據流前一時刻或是后一時刻的取值有一定的內在關系,還與整個屬性的周期性變化存在相關性。 1.1時間粒度劃分 對于未來數據窗口的長度w與滑動窗口的更新周期Δt間的關系分如下2種情況進行討論。當w<Δt,說明時間粒度相對比較小,采用細粒度進行預測;當w≥Δt,說明時間跨度相對比較大,采用粗粒度進行預測。所謂的粗粒度和細粒度都是相對而言的,只是表示對于預測的時間跨度取相同的量化級別。 未來數據窗口的長度w=q×Δt,利用緩沖區中的數據建立預測方程,從而預測未來包含q個Δt數據窗口上該屬性的屬性值。 (1)w≤Δt時,細粒度預測處理如下: 對于m個緩沖區,每個緩沖區中隨機抽取總體樣本的r個數據,對于標號為1的緩沖區的r個樣本點,記為X11,X12,X13,…,X1r,依次類推,對于標號為m的緩沖區的r個樣本點,記為Xm1,Xm2,Xm3,…,Xmr;將每個緩沖區的r個樣本點按照時間先后順序依次排列,分別記為X(0)(1)=X11,X(0)(2)=X12,…,X(0)(r)=X1r,X(0)(r+1)=X21,…,X(0)(mr)=Xmr,該mr個序列值構成灰色預測模型的初始序列X(0)。 (2)當w>Δt,粗粒度預測處理如下: 對于m個緩沖區,每個緩沖區中隨機抽取總體樣本的r個數據,對于標號為1的緩沖區的r個樣本點,記為X11,X12,X13,…,X1r,依次類推,對于標號為m的緩沖區的r個樣本點,記為Xm1,Xm2,Xm3,…,Xmr。 將每個緩沖區的r個樣本點求平均,分別記為X(0)(1)= 1r ∑ rs=1 ,X(0)(2)= 1r ∑ rs=1 2s,…,X(0)(m)= 1r ∑ rs=1 ,該m個平均值按照時間先后順序構成灰色預測模型的初始序列X。 1.2預測算法 本研究提出的預測算法如下: DataStreamPredictiveAlgorithm( ) 輸入:當前m個緩沖區中,每個緩沖區中抽取的r個樣本數據。 輸出:未來數據窗口上的值;(1)for緩沖區編號1到m;(2){每個緩沖區中抽取r個樣本數據;(3)if w≤Δt;(4)細粒度計算序列X(0);(5)else粗粒度計算序列X(0)};(6)灰色模型預測;(7)計算出預測值,計算平均相對誤差MRE;(8)if平均相對誤差≤給定誤差;(9)預測成功,return yk;(10)else預測失敗,計數器count=count+1;(11)if count=設定閾值;(12){待到新數據到達,覆蓋最老的緩沖區中數據;(13)使用最新的m個緩沖區中的數據樣本構造新的序列;(14)調用DataStreamPredictiveAlgorithm( )}。 在算法的第6步,可以分別采用灰色一階模型GM(1,1)及灰色二階模型GM(2,1)進行預測、對比;yk代表未來數據窗口上第k個滑動周期的預測值。 2實現 氣體傳感器的主要性能參數有靈敏度、響應時間、穩定性、量程、精度等,試驗中所用到的氨氣傳感器是加拿大原裝進口的,其采樣頻率默認為5 s,用戶可在1~60 s之間進行設置。二氧化碳傳感器、硫化氫傳感器、二氧化硫傳感器采用的是由加拿大原裝進口的BW五合一氣體檢測儀,可同時測量二氧化碳、硫化氫、二氧化硫氣體,各個傳感器參數指標如表1所示。 采用2臺配置為運行Windows 7、具有Intel Core i7處理器、8 G內存的計算機,一臺計算機將采集到的數據以數據流的形式進行發送,另一臺計算機接收數據流并執行相應的預測算法。 算法中的幾個主要參數如未來數據窗口的長度w=q×Δt,滑動窗口的更新周期Δt、數據流的采樣頻率f對本研究的預測準確率都有一定的影響,其中q為未來數據窗口寬度。同時,為了對預測結果的準確度更好地進行評價和比較,給出如下評價指標。 (1)預測算法的成功率(PSR): 公式(1)中,預測成功定義為: 設定公式(2)中的系統誤差需求為1%。 (2)預測的平均相對誤差(MRE): 式中:k為自然數,yk代表未來數據窗口第k個滑動周期的真實值,y′k代表未來數據窗口上第k個滑動周期的預測值。平均相對誤差MRE反映了預測數據偏離真實值的程度,MRE值越小,表示預測精度越高。 3試驗評估 分別采用基于時間粒度的灰色一階模型GM(1,1)及灰色二階模型GM(2,1)自適應調整預測算法進行預測,試驗過程和結果如下。 3.1考察數據采樣頻率與預測成功率的關系
設置滑動窗口的更新周期設為60 s,數據緩沖區為10個,數據的采樣頻率分別設置為10、15、20、30、60個/min,分別采用基于灰色二階模型GM(2,1)、基于灰色一階模型 GM(1,1) 計算預測成功率與采樣頻率的關系,圖1、圖2對應的未來數據窗口的長度分別為60、600 s,從圖1、圖2可以看出,數據的采樣頻率變大時,預測的成功率先下降,達到一定階段后變化較平穩,總體來看預測的成功率呈現下降趨勢。這是因為隨著采樣頻率的變大,滑動窗口的更新周期變小,開始階段的曲線說明采樣頻率設置得比較理想,采樣頻率稍作增大,對預測的成功率產生影響,當采樣頻率增大到一定數值時,噪聲到了一定程度對于預測的成功率影響不大,所以預測成功率下降的趨勢比較平緩。通過對比發現,其他參數相同的情況下,每種算法在圖1的細粒度預測比對應的圖2的粗粒度預測的成功率高。
3.2考察滑動窗口的更新周期對預測成功率的影響
數據緩沖區為10個,數據的采樣頻率設置為12個/min,分別采用基于灰色二階模型GM(2,1)、基于灰色一階模型GM(1,1)計算預測成功率與滑動窗口的更新周期間關系,圖3、圖4對應的未來數據窗口的長度分別為60、600 s,在滑動窗口的更新周期為20 s時,預測成功率較低,這是由于氣體傳感器本身的惰性所造成的,隨著滑動窗口更新周期的變大,預測的成功率逐漸上升,到滑動窗口的更新周期為40 s時,預測成功率較高,當滑動窗口更新周期為60 s時,基于細粒度的灰色二階模型預測的成功率最高,達到83%;此后,隨著滑動窗口更新周期的增大,預測的成功率反而下降,這是因為滑動窗口的更新周期過大,難免會掩蓋中間過程的數據波動,導致預測的成功率降低。通過對比發現,其他參數相同的情況下,每種算法在圖3的細粒度預測比對應的圖4的粗粒度的預測的成功率高。
3.3考察未來數據窗口的寬度與平均相對誤差的影響
如圖5所示,當采樣頻率為0.2個/s、滑動窗口的更新周期為60 s時,隨著未來數據窗口寬度q的增加,未來數據窗口的長度w=q×Δt也相應增大,基于灰色一階模型GM(1,1)及基于灰色二階模型GM(2,1)預測的平均相對誤差都是增大的[JP3]趨勢,這是因為用估計出來的值再去估計后面的數據,中間經過多次誤差累計,誤差不斷累積遞增,導致預測的準確率降低。
從圖5中可以看出,基于灰色二階模型GM(2,1)預測的平均相對誤差要小于基于灰色一階模型GM(1,1),即基于灰色二階模型GM(2,1)預測的準確度要高于基于灰色一階模型GM(1,1),這與相關文獻的理論研究結果是一致的,即灰色一階模型GM(1,1)適用于指數增長規律變化的領域,灰色二階模型GM(1,1),既能反映出系統周期性變化的規律,又能反映出系統的趨勢變化特征[9],[JP3]在振蕩的或非單調變化的動態過程中GM(2,1)預測的精確度優于GM(1,1)模型[10]。GM(2,1) 方法對近期的數據預測比較準確,達到試驗預期的需求。
4結論
本研究針對數據流的實時預測、在線處理,引入時間粒度的概念,將未來數據流的實時預測分為粗粒度預測和細粒度預測2種,采用灰色一階模型、二階模型分別進行預測。試驗結果表明,隨著滑動窗口更新周期的增大,預測的成功率反而下降;隨著采樣頻率的變大,預測成功率降低;隨著未來數據窗口寬度的增加,預測的平均相對誤差增大,但基于時間粒度的灰色二階模型對近期的數據預測比較準確,可以滿足系統的需求。
參考文獻:
[1]張晗,王霞. 基于小波分解的網絡流量時間序列建模與預測[J]. 計算機應用研究,2012,29(8):3134-3136.
[2]孫占全,劉威,朱效民. 大規模交通流預測方法研究[J]. 交通運輸系統工程與信息,2013,13(3):121-125.
[3]Telec Z,Lasota T,Trawiński B,et al. An analysis of change trends by prediction from a data stream using neural networks[M]//Flexible Query Answering Systems. Berlin Heidelberg:Springer,2013:589-600.
[4]Wakabayashi K,Miura T. Data stream prediction using incremental hidden markov models[M]//Data Warehousing and Knowledge Discovery. Berlin Heidelberg:Springer,2009:63-74.
[5]Mimran O,Even A. Data stream mining with multiple sliding Windows for continuous predictio[C]//Proceedings 22 nd European Conference on Information Systems. Tel Aviv,2014:54-59.
[6]Bosnic Z, Demar J,Kepret G,et al. Enhancing data stream predictions with reliability estimators and explanation[J]. Engineering Applications of Artificial Intelligence,2014(34):178-192.
[7]Bettini C,Dyreson C E,Evans W S,et al. A glossary of time granularity concepts[J]. Lecture Notes in Computer Science,1997(1399):406-413.
[8]劉思峰,楊英杰,吳利豐. 灰色系統理論及其應用[M]. 開封:河南大學出版社,1991:12-20.
[9]王端民,張蓮生. 灰色二階預測模型建模方法的改進[J]. 空軍工程大學學報(自然科學版),2000,1(3):23-26.
[10]陶鑫,文鴻雁,何美琳. 灰色二階預測模型在變形監測中的應用[J]. 測繪科學,2014,39(6):135-137.