時間序列數據挖掘綜述

時間序列數據挖掘綜述

http://hi.baidu.com/superkiki1989/item/33d609ec4d936204560f1d14算法

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