劉 洋,李學文
(西安科技大學,西安 710000)
時間序列指數平滑預測是數據挖掘的重要組成部分,數據挖掘如今已廣泛運用于生化、經濟、人口、醫學等眾多領域。現如今大量數據的實時更新使實時數據的挖掘顯得尤為重要,實時數據的挖掘是基于實時時間序列之上的,相較于其他時間序列,實時時間序列有其獨特的優勢。一是實時的時間序列數據在線上更新;二是實時數據的數據量難以預估,可能數值無限大;三是實時序列的變化速度極快,無法通過系統干預其發生過程[1];四是實時時間序列具有時效性,如果沒能及時進行儲存,即時數據就只能被觀察到一次[2]。
時間數據由于其儲量龐大,若要直接計算其時間序列,目前的技術手段尚難以實現,所以為了預測實時數據中的時間序列,就要進行時間序列分割的操作,時間序列分割需要遵循簡潔化和高效化的原則,這就意味著時間序列分割后能夠產生較少的時間段數,且擁有最低的數據誤差[3]。其高效性表現在能夠適用于各種實時變化的數據流中,并進行在線數據計算。
本文針對事件分割的簡潔化和高效化原則,先利用時間序列預測中的指數平滑法來預測時間序列的數據變化,然后考慮實時數據離群點可能對時間序列分割點造成干擾這一影響因素,進行數據校驗步驟,結合數據歷史變化確定時間序列分割點,避免實驗結果會受到離群點的影響[4]。
在指數平滑預測分割算法中,時間t的預測值為St,其實際值為yt,其中誤差為兩者的差值(實際值-預測值)[5]。引用定義判斷分割點:長度為n的時間序列使用字母T表示,i代表分割點,△AErri是在分割點i處的的誤差差值,SKPS={SP1,…,SPm}表示所有分割點的集合,下標m表示該集合中元素個數最大值。將△AErri視為一個隨機變量,并滿足正態分布N[μ,σ]。該定義中μ和σ值算法如下:

式(1)中,由于時間序列本身具有隨機性,其獨立分布表現在利用指數平滑算法得到時間t的預測值和其實際值之間的誤差,相互獨立,不存在關聯性。每個點的誤差與上一個點或下一個點的誤差無關,其互相之間無依賴關系,這也是時間序列為一個隨機變量的原因[6]。中心極限定理的方法論中,當某個樣本的總量趨近于無窮時,隨機變量將滿足正態分布。式(1)中的△AErri是在分割點i處的的誤差差值,被視為一個隨機變量,當△AErri序列接近無窮時,其在分割點i處的誤差應該服從正態分布N[μ,σ],由此可得式(1)成立。
在時間序列分割算法中,要考慮壓縮率帶來的影響,壓縮率一般是在進行時間分割活動前設置好的值。通過式(1)可以推導出式2來體現預測值誤差和壓縮率的關系[7]。假設預設的分割壓縮率為p,偏離均值的程度大小用字母x代表,標準正態分布的累積分布函數用φ來表示。則:

在式(2)中,通過誤差預測,可以得到分割后的子序列,子序列的發展趨勢具有單一性,數據點如果和趨勢發展相偏離,那么此數據點就可以被定義疑似分割點,分割的壓縮率和預測誤差之間呈相關關系。
在進行檢驗分割點工作前,應避免離群點的干擾,但在實際數據傳輸中,分割點的獲取可能會被各類因素干擾,使得實驗得到的分割點其實是錯誤獲取的離群點。離群點本質上是與時間序列無關的一個點,而分割點的位置是在時間序列發生較大變化之間的一個定位點[8]。故為避免離群點干擾,就要在進行時間序列分割中加入校驗步驟。
校驗步驟具體操作,是觀察時間序列中的某個位置,與歷史趨勢不相符合,所以標記此位置為疑似分割點,在此之后去檢查下一個點,如果下一個點的位置同樣與歷史趨勢不相符合,那么就可以斷定先前的疑似分割點為真實分割點,反之則表示疑似分割點絕非分割點[9]。本研究中選擇疑似分割點的數量為1來進行試驗,理由是離群點的產生幾率在本實驗中較小,很難有大于數量1的離群點生成。
時間序列分割的首要任務是快速判斷分割點的位置,降低離群點的影響。指數平滑是產生平滑時間序列的一種常用方法,其特點是在預測下一周期的指標時,兼顧本周期和上一周期的指標,對數據的重要性等同對待[10]。在實時數據中基于指數平滑預測而得到的時間分割算法,原理是將研究實時數據的歷史趨勢和歷史預測,將歷史結果與歷史預測進行統計學計算其方差,在新數據產生的同時實時計算新數據的均值和方差,用文中的公式確定分割點位置,在分割點確定后進行數據校驗,確保分割點的正確性,避免離群點干擾[11]。研究過程中實時計算,實時瀏覽,無需保存,保證算法計算的時效性與易用性[12]。
本次實驗使用的數據來自軌道交通中軸承內圈轉動數據,包括軸承在2.5圈/秒、5圈/秒、7.5圈/秒、10圈/秒不同轉速下軸承箱體的震動頻率數據,單位為m/s2,以軸承箱體的震動頻率的加速度為實驗測量值。在數據處理中,由于數據點數量規模較大,故采用等距離取樣法,取其中2000個點為數據點。實驗中分割的數據為軸承正常運行時數據,橫坐標為數據點數,縱坐標為加速度(箱體震動頻率)數值,實驗最初數據如圖1所示。
本設計中以經典滑動窗口算法(SW)和滑動窗口和底部向上算法(SWAB)作為待選算法做比較,還采用了一種離線的底部向上算法(Bottom_up)和指數平滑預測分割算法(SWESSA)作為對比。實驗的指標以時間序列分割的效率和速度為標準,從分割點、剩余誤差和計算時間三個方面對分割結果進行評估。

圖1 四種轉速下的實驗數據圖
本節以轉速為5K的軸承作為實驗對象,通過實驗結果做分割算法的效果展示,圖2使用了實時變化的數據點連成曲線,將數據點曲線與分割點曲線進行擬合,橫坐標表示時間數據的索引數值,縱坐標為軸承運行振動的加速度,單位為m/s2。

圖2 不同算法下的分割效果
圖2中的經典滑動窗口算法(SW)、滑動窗口和底部向上算法(SWAB)、離線的底部向上算法(Bottom_up)、指數平滑預測分割算法(SWESSA),四種算法呈現的數值都與時間序列的趨勢相符合。
2.3.1 分割點比較
通過表1可以發現,以經典滑動窗口算法(SW)為基礎,滑動窗口底部向上算法(SWAB)和指數平滑預測分割算法(SWESSA)的值都在1左右浮動,而離線的底部向上算法(Bottom_up)在公共數據值上是其他算法的三倍多,在平均值上是其他算法的兩倍多。

表1 各類算法分割點比較
2.3.2 剩余誤差比較
在測量過程中,實時序列的分割結果往往和原始數據之間存在有誤差,但這之間的誤差越小就證明算法的分割效果越好,仍以經典滑動窗口算法(SW)為基礎,數值越小,表示算法的使用效果越好。如表2是對四類算法時間分割誤差的比較,并在表末取四類算法誤差值的平均數。由表2可知,指數平滑預測分割算法(SWESSA)的誤差要更低于經典滑動窗口算法(SW)和滑動窗口底部向上算法(SWAB),在四類算法中,離線的底部向上算法(Bottom_up)誤差是最小的。
2.3.3 計算時間比較
如表3中,羅列出了計算時間序列分割點的時間和剩余誤差的時間,從表3中可以看出,指數平滑預測分割算法(SWESSA)計算時間在四類算法中最低。將分割點、剩余誤差和計算時間三種結果綜合比較,指數平滑預測分割算法(SWESSA)可以適用于實時數據,且數據量大,計算速度快[13]。

表2 算法誤差比較

表3 算法計算時間比較
綜上所述,文中通過研究基于指數平滑預測的時間分割算法,通過對比各類算法在軸承運動測算中的表現,分析出指數平滑預測的分割算法適用于實時數據的原因[14]。且通過測算可以高效得出一個時間序列中的點是否為正確的分割點,使用實驗結果證明理論的正確性。本次研究對實時數據的挖掘與分析有著重要意義。