時間序列數據挖掘綜述

時間序列數據挖掘綜述

一、引言
  時間序列是指按時間順序排列的一組數據,是一類重要的複雜數據對象。作爲數據庫中的一種數據形式,它廣泛存在於各種大型的商業、醫學、工程和社會科學等數據庫中,如股票價格、各種匯率、銷售數量、產品的生產能力、天氣數據等。大量時間序列數據真實地記錄了系統在各個時刻的所有重要信息,若能改進某種高效的數據處理方法,發現其中各時間序列之間的相互關係,必將大大提高人們對這類系統的認識和理解,進而進行有效的預測和控制。
  時間序列數據挖掘(TimeSeriesDataMining,TSDM)就是要從大量的時間序列數據中提取人們事先不知道的、與時間屬性相關的有用信息和知識,用於指導人們的社會、經濟、軍事和生活等活動。時間序列挖掘對人類社會、科技和經濟的發展具有重大意義,正逐漸成爲數據挖掘的研究熱點之一。
  本文內容組織如下:在第二部分中,簡要地分析和比較了時間序列分析和數據挖掘中對時間序列數據處理方法的異同;第三部分討論了時間序列數據挖掘的建模過程,接着在第四部分簡單介紹了時間序列數據的預處理;第五部分介紹了時間序列數據挖掘的方法,包括相似性檢索和時間序列分割等。第六部分敘述了時間序列挖掘系統的組成,最後進行了總結。
  二、從時間序列分析到時間序列挖掘
  時間序列分析是統計學研究的一個重要分支,它直接以事物在不同時刻的狀態所形成的數據爲研究對象,通過對時間序列數據的特徵進行分析和研究,揭示事物的發展變化規律。經典的時間序列分析方法有圖表法、指標法和模型法,其中模型法是目前對時間序列進行深層次分析和刻畫的主要方法,一些經典的時間序列分析模型如AR、MA、ARMA、ARCH和GARCH等已被廣泛應用於自然和社會科學領域。美國經濟學家羅伯特·恩格爾和克萊夫·格蘭傑因在時間序列分析方面的主要理論貢獻———協整理論和自迴歸條件異方差(ARCH)模型,榮獲2003年度諾貝爾經濟學獎。
  人們爲了從汪洋大海般的數據中將許多隱藏的有決策意義的信息挖掘出來,於1989年提出了數據挖掘(DataMining)的概念。它是從大量的、不完全的、有噪聲的、模糊的、隨機的數據中,提取隱含在其中的、人們事先不知道的、但是又潛在有用的信息和知識的過程。時間序列數據是一類常見而重要的數據,對其挖掘分析研究引起了國內外很多學者的興趣和注意,目前已成爲數據挖掘研究的一個重要分支和研究熱點,其成果已應用於金融、生物醫學、天文、氣象等領域。
  時間序列的模型分析法和挖掘方法有很多共性和聯繫。主要體現在:都認爲時間序列蘊含着系統的歷史行爲和特徵信息;都要從數據中找出規律和特徵,進而對客觀事物進行描述或預測;採用一些共同的方法:統計理論和方法。
  然而,由於經典模型分析法和挖掘方法所基於的方法和思路明顯不同,因而二者所找出的規律形式以及效果也就存在很大差異。
  模型法中理論模型的建立是在數學理論和假設基礎上通過演繹推理的方法建立起來的。實際模型的參數求解都基於堅實的數學基礎,因此只要假設合理,所得出的結論肯定是合理的。模型法中模型的形式通常是一個或一組數學方程,不但表達簡潔,而且可解釋性、可理解性也都很好,爲進一步地處理、推導和應用提供了極大的方便。但是,如果所提出的假設不合理,那麼模型法將會嚴重失真。模型的構建也存在困難,如果對系統認識不夠和不具備良好的建模技巧,是很難構建出一個好的模型的。另外,模型法反映的是序列的總體上的特徵,對序列中隱含的一些局部、細節的特徵是很難表現出來的。
  而在時間序列挖掘中,“規則”之所以被發現是因爲有足夠多的數據支持。因此時間序列的挖掘方法具有廣泛的“經驗”基礎,但缺乏嚴格的理論基礎。同時由於各種干擾因素的影響,數據中會存在一些“假”規則,因此發現的“規則”一般需要進行驗證。由於挖掘方法基於歸納的思想,直接由數據驅動,因而它常常可以撇開一些假設條件,如不需正態假設、平穩假設、線性假設等。最後,如何表達挖掘出來的知識也是需要考慮的。目前主要的表達方法有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)應用分割算法創建時間序列的高級數據表示,以便對時間序列進行索引、聚類和分類。時間序列分割算法的研究已成爲時間序列數據挖掘研究的主要任務之一。基本的方法是採用分段直線表示(piecewiselinearrepresentation,PLR)方法分割時間序列。PLR法比較符合人們的直觀經驗,而且通常索引結構維數低、計算速度較快,所以被較多人採用。在此基礎上,已經發展出了許多種實用的分割算法。
  3、其他
  時間序列挖掘中的頻繁模式發現、多粒度結構模式發現、異常數據檢測等方法也已取得了不少成果,有些已經用於實際系統中,在此不再贅述,可以參考有關文獻。
  4、時間序列挖掘系統
  時間序列挖掘系統一般由五個部分組成:時間序列數據的可視化、數據預處理、數據約簡、模式挖掘算法和結果模式可視化。其中模式挖掘算法是時間序列數據挖掘引擎的核心。下面分別對其功能進行簡單介紹。
  1)時間序列數據的可視化 
  通過原始數據的可視化這個過程可以看出數據是如何分佈的,以便判斷序列的趨勢。
  2)數據預處理
  數據預處理將原始數據轉換成挖掘算法需要的數據格式,包括數據標準化、空缺值處理、噪聲過濾和數值離散化等。
  3)數據約簡
  去除一些冗餘數據和無意義數據,或由於時間複雜性或內存的能力,選擇一小部分數據表示整個集合,對原始數據進行數據變換和特徵提取。
  4)模式挖掘
  使用挖掘算法從大數據集中挖掘,可藉助可視化技術,調整挖掘過程的閾值和參數。
  5)模式可視化
  將發現的模式在屏幕上可視化輸出。協助用戶通過觀察分析模式的意義。
  結論
  世界上的許多事物、現象的發展變化都離不開時間,所以時間序列數據庫的分佈相當廣泛。因而時間序列數據挖掘領域的任何進展都可能帶來廣泛的社會效益。例如在證券行業,通過分析股票市場歷史走勢的變化特點,我們可以對未來走勢進行預測;商品銷售中,通過對銷售數據的分析,可以預測未來的市場需求狀況,從而指導生產計劃的制定;電力部門可以通過對用電量分析,指導電力分配;在醫學領域,醫生通過對藥物療效的數據分析,掌握藥物的特性等。
  對時間序列研究已經有很長的時間了,也有了相當多的成果。但應用人工智能、機器學習等學科的最新成果在信息科學範疇中對時間序列進行數據挖掘的研究纔剛剛起步。總的來說,未來工作可以有以下幾個方面:
  1、針對不同的應用背景和數據特點,給出合理的時間序列相似性定義,並且開發在對應相似性定義下進行快速有效的查詢、搜索等數據挖掘基礎算法。
  2、研究時間序列基於概念層次的分類、聚類等方面的算法及進一步應用的可能性。
  3、研究時間序列數據挖掘原語,爲時間序列數據挖掘的標準化和商品化打下良好基礎。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章