1. 程式人生 > >時間序列資料探勘綜述

時間序列資料探勘綜述

一、引言
  時間序列是指按時間順序排列的一組資料,是一類重要的複雜資料物件。作為資料庫中的一種資料形式,它廣泛存在於各種大型的商業、醫學、工程和社會科學等資料庫中,如股票價格、各種匯率、銷售數量、產品的生產能力、天氣資料等。大量時間序列資料真實地記錄了系統在各個時刻的所有重要資訊,若能改進某種高效的資料處理方法,發現其中各時間序列之間的相互關係,必將大大提高人們對這類系統的認識和理解,進而進行有效的預測和控制。
  時間序列資料探勘(Time Series Data Mining,TSDM) 就是要從大量的時間序列資料中提取人們事先不知道的、與時間屬性相關的有用資訊和知識,用於指導人們的社會、經濟、軍事和生活等活動。時間序列挖掘對人類社會、科技和經濟的發展具有重大意義,正逐漸成為資料探勘的研究熱點之一。
  本文內容組織如下:在第二部分中,簡要地分析和比較了時間序列分析和資料探勘中對時間序列資料處理方法的異同;第三部分討論了時間序列資料探勘的建模過程,接著在第四部分簡單介紹了時間序列資料的預處理;第五部分介紹了時間序列資料探勘的方法,包括相似性檢索和時間序列分割等。第六部分敘述了時間序列挖掘系統的組成,最後進行了總結。
  二、從時間序列分析到時間序列挖掘
  時間序列分析是統計學研究的一個重要分支,它直接以事物在不同時刻的狀態所形成的資料為研究物件,通過對時間序列資料的特徵進行分析和研究,揭示事物的發展變化規律。經典的時間序列分析方法有圖表法、指標法和模型法,其中模型法是目前對時間序列進行深層次分析和刻畫的主要方法,一些經典的時間序列分析模型如AR、MA、ARMA、ARCH 和GARCH 等已被廣泛應用於自然和社會科學領域。美國經濟學家羅伯特·恩格爾和克萊夫·格蘭傑因在時間序列分析方面的主要理論貢獻———協整理論和自迴歸條件異方差(ARCH) 模型,榮獲2003 年度諾貝爾經濟學獎。
  人們為了從汪洋大海般的資料中將許多隱藏的有決策意義的資訊挖掘出來,於1989 年提出了資料探勘(Data Mining) 的概念。它是從大量的、不完全的、有噪聲的、模糊的、隨機的資料中,提取隱含在其中的、人們事先不知道的、但是又潛在有用的資訊和知識的過程。時間序列資料是一類常見而重要的資料,對其挖掘分析研究引起了國內外很多學者的興趣和注意,目前已成為資料探勘研究的一個重要分支和研究熱點,其成果已應用於金融、生物醫學、天文、氣象等領域。
  時間序列的模型分析法和挖掘方法有很多共性和聯絡。主要體現在:都認為時間序列蘊含著系統的歷史行為和特徵資訊;都要從資料中找出規律和特徵,進而對客觀事物進行描述或預測;採用一些共同的方法:統計理論和方法。
  然而,由於經典模型分析法和挖掘方法所基於的方法和思路明顯不同,因而二者所找出的規律形式以及效果也就存在很大差異。
  模型法中理論模型的建立是在數學理論和假設基礎上通過演繹推理的方法建立起來的。實際模型的引數求解都基於堅實的數學基礎,因此只要假設合理,所得出的結論肯定是合理的。模型法中模型的形式通常是一個或一組數學方程,不但表達簡潔,而且可解釋性、可理解性也都很好,為進一步地處理、推導和應用提供了極大的方便。但是,如果所提出的假設不合理,那麼模型法將會嚴重失真。模型的構建也存在困難,如果對系統認識不夠和不具備良好的建模技巧,是很難構建出一個好的模型的。另外,模型法反映的是序列的總體上的特徵,對序列中隱含的一些區域性、細節的特徵是很難表現出來的。
  而在時間序列挖掘中,“規則”之所以被發現是因為有足夠多的資料支援。因此時間序列的挖掘方法具有廣泛的“經驗”基礎,但缺乏嚴格的理論基礎。同時由於各種干擾因素的影響,資料中會存在一些“假”規則,因此發現的“規則”一般需要進行驗證。由於挖掘方法基於歸納的思想,直接由資料驅動,因而它常常可以撇開一些假設條件,如不需正態假設、平穩假設、線性假設等。最後,如何表達挖掘出來的知識也是需要考慮的。目前主要的表達方法有If-Then規則、決策樹、貝葉斯網路以及神經網路等。除了If-Then規則之外,其它表達方法的可理解性都較差。由於挖掘方法是基於資料的,因此它對資料樣本的數量和質量要求也比較高。否則就會造成“垃圾進垃圾出”。隨著時間的變化,時間序列的內部特徵也會發生一些變化,基於歷史資料的模型可能並不適應現在的資料,因此動態更新挖掘出來的模型是必須的。
  由此可見,時間序列的經典模型分析方法和資料探勘方法由於解決問題的思路存在本質上區別,因而對時間序列的特徵規律的提取形式和效果都不同,各有其特點。時間序列挖掘並不能完全代替時間序列的模型分析方法,兩者是相互補充的。例如ARMA、ARCH 以及一些非線性建模方法都已被利用在挖掘方法中。
  三、時間序列挖掘及其建模過程
  時間序列挖掘的基本思路為: 針對實際的大量序列資料,根據應用目的,選用相應的挖掘方法,從序列資料中發現隱含的規則,再以這些規則對序列未來的變化進行預測或描述。
時間序列挖掘的一般方法是,首先對序列先進行分割並抽取各個子序列的特徵,根據這些特徵進行聚類,得到少數幾個模式,將模式進行符號替換,然後採用序列模式發現演算法實現(關聯)規則的發現。
  實現時間序列挖掘的方法有很多,包括統計學、決策樹、模糊集、粗糙集、神經網路和遺傳演算法等,以及上述方法的綜合,從各個角度、各個層面去發掘知識。時間序列挖掘的建模過程本質上是一個歸納推理過程,只要序列資料中的某種模式達到設定的置信度、興趣度、支援度閾值要求,就會輸出規則。因此,時間序列挖掘方法可能會建立多個模型,它們分別反映了序列某些方面的特徵。
  例如對深滬兩市的股票回報率序列進行關聯模式挖掘,其過程可簡述為: (1)先對序列進行分割,例如採用一種線性化分段的方法,將深市時間序列分割成許多斜率和時間跨度不同的線段;(2)由於線段的種類太多,因此根據斜率和時間跨度相似的原則,再對各種線段形態進行聚類,從而得到少數幾個線段形態類別;(3)給每個形態類別賦予不同的符號,從而將時間序列轉換為符號序列;(4) 按照頻繁關聯模式的發現演算法,對兩個符號序列進行關聯挖掘,可得到類似這樣的規則:“當深市持續3天的小幅上升時,滬市會出現一個持續約5天的上升”、“當深市持續1天的大幅下跌時,滬市會出現持續約2天的大幅下跌”等。
  四、時間序列資料預處理
  現實世界的資料往往是帶有很多噪聲的,因此,在挖掘之前,對資料進行預處理是必不可少的。以股票市場為例,股票每天的收盤價格受日常的各種因素的影響,使觀察長時期的特徵變得十分困難。因此,對原始資料進行預處理,並讓挖掘演算法工作在預處理後的資料上具有明顯的益處。
  時間序列資料的預處理可以採用數字濾波、傅立葉變換和小波變換等方法。與原始的時間序列相比,預處理後的時間序列具有下列優點:
  (1) 保留了原始序列的整體變化趨勢;
  (2) 濾除高頻成分(通常被認為是噪音);
  (3) 減少了資料,增強了每個資料的資訊量;
  五、時間序列挖掘模式
  時間序列挖掘目前的研究主要集中在相似性檢索、序列分割、頻繁模式發現、多粒度結構模式發現、異常資料檢測等方面。
  1、相似性檢索
  資料探勘應用需要資料庫具備相似查詢能力,即如何在幾兆甚至幾十兆的時間序列資料庫中發現兩個模式相似的序列。顯然,手工處理是不能完成此類任務的。
  時間序列的相似性檢索就是在時間序列資料庫中發現與給定序列的模式相似的序列,在進行序列的相似性查詢之前要給定一個相似性評價函式和一個閾值ε,如果函式值大於等於ε,則表明序列相似。通常用序列X 與序列Y之間的距離函式D(X,Y)來作為序列X 與Y 的相似性評價函式。然而基於距離函式比較方法的致命弱點是對噪音太敏感,而且一般情況下,序列都很長,因此計算距離需要很長的時間。
  因此,若能從序列中抽取少量的、主要的特徵,可以大大提高序列的查詢速度。基於此,人們已經將自迴歸滑動平均模型(ARMA)、離散傅立葉變換(DFT)和小波變換(DWT)用於時間序列的匹配。 
  上述方法的出發點是:兩個時間序列是相似的,如果兩個序列的形狀相似。但時間序列資料可以看作是具有一定動態特性的系統的外在表現形式,因此具有同樣動態特性的時間序列也應該是相似性的,例如基於統計特性描述(一階統計量和高階統計量)。
  根據Parseval理論,對任一時間序列,其在時域的能量等同於其在頻域的能量。Parseval理論將時域與頻域有效地連線起來。由於大量實踐中感興趣的時間序列,當變換到頻域時只有少量的係數具有較大的振幅,因此,許多方法通常將原始的時間序列從時域變換到頻域,然後用這些具有較大振幅的頻率係數來建立空間索引以加快搜索過程。 
  從實際應用的角度來看,一個好的相似模式匹配(或搜尋) 方法應該滿足這樣一些要求: 演算法應該是有效的,且演算法不受查詢序列長度變化的影響,與序列的相對位置無關,支援幅度伸縮等。
  2、分割
  從時間序列資料抽取模式的關鍵問題之一是如何分割時間序列資料。時間序列分割主要有兩個應用:(1)系統模型變化檢測,即當產生時間序列的系統(引數)發生變化時,應用分割演算法可以檢測到這種變化是何時發生的;(2)應用分割演算法建立時間序列的高階資料表示,以便對時間序列進行索引、聚類和分類。時間序列分割演算法的研究已成為時間序列資料探勘研究的主要任務之一。基本的方法是採用分段直線表示(piecewise linear representation,PLR)方法分割時間序列。PLR法比較符合人們的直觀經驗,而且通常索引結構維數低、計算速度較快,所以被較多人採用。在此基礎上,已經發展出了許多種實用的分割演算法。
  3、其他
  時間序列挖掘中的頻繁模式發現、多粒度結構模式發現、異常資料檢測等方法也已取得了不少成果,有些已經用於實際系統中,在此不再贅述,可以參考有關文獻。
  4、時間序列挖掘系統
  時間序列挖掘系統一般由五個部分組成:時間序列資料的視覺化、資料預處理、資料約簡、模式挖掘演算法和結果模式視覺化。其中模式挖掘演算法是時間序列資料探勘引擎的核心。下面分別對其功能進行簡單介紹。
  1)時間序列資料的視覺化 
  通過原始資料的視覺化這個過程可以看出資料是如何分佈的,以便判斷序列的趨勢。
  2)資料預處理
  資料預處理將原始資料轉換成挖掘演算法需要的資料格式,包括資料標準化、空缺值處理、噪聲過濾和數值離散化等。
  3)資料約簡
  去除一些冗餘資料和無意義資料,或由於時間複雜性或記憶體的能力,選擇一小部分資料表示整個集合,對原始資料進行資料變換和特徵提取。
  4)模式挖掘
  使用挖掘演算法從大資料集中挖掘,可藉助視覺化技術,調整挖掘過程的閾值和引數。
  5)模式視覺化
  將發現的模式在螢幕上視覺化輸出。協助使用者通過觀察分析模式的意義。
  結論
  世界上的許多事物、現象的發展變化都離不開時間,所以時間序列資料庫的分佈相當廣泛。因而時間序列資料探勘領域的任何進展都可能帶來廣泛的社會效益。例如在證券行業,通過分析股票市場歷史走勢的變化特點,我們可以對未來走勢進行預測;商品銷售中,通過對銷售資料的分析,可以預測未來的市場需求狀況,從而指導生產計劃的制定;電力部門可以通過對用電量分析,指導電力分配;在醫學領域,醫生通過對藥物療效的資料分析,掌握藥物的特性等。
  對時間序列研究已經有很長的時間了,也有了相當多的成果。但應用人工智慧、機器學習等學科的最新成果在資訊科學範疇中對時間序列進行資料探勘的研究才剛剛起步。總的來說,未來工作可以有以下幾個方面:
  1、針對不同的應用背景和資料特點,給出合理的時間序列相似性定義,並且開發在對應相似性定義下進行快速有效的查詢、搜尋等資料探勘基礎演算法。
  2、研究時間序列基於概念層次的分類、聚類等方面的演算法及進一步應用的可能性。
  3、研究時間序列資料探勘原語,為時間序列資料探勘的標準化和商品化打下良好基礎。