<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【機器學習】一文解讀時間序列基本概念

          共 6799字,需瀏覽 14分鐘

           ·

          2021-10-17 14:17

          大家對時間序列知多少?何為時間序列、時間序列分析、時間序列分解、時間序列預測,以及時間序列預測都有哪些方法?
          從本篇開始,我們一起從零開始入坑時間序列,同時非常歡迎文末留言,一起學習討論,共同進步!如果你有這方面的研究,非常歡迎來投稿,分享你在入坑過程中的知識總結(jié)、心得體會以及其他任何形式的學習筆記。
          隨著社會的進步,人們生活水平的提高,或是人人都有私家車,然而驅(qū)車在外,停車卻成了一個頭大的問題。而沒車的我在維護一組智能停車計時器,它們提供了關(guān)于它們使用頻率和使用時間的數(shù)據(jù)。而云朵君時刻都在思考,如何才能為大家提供更好的服務(wù)。

          如果我可以根據(jù)儀表的過去表現(xiàn),根據(jù)供求規(guī)律來預測它的未來價值,那會怎樣呢?

          準確預測什么時間采取相應策略來實現(xiàn)目標,這是一個不小的挑戰(zhàn),但對于這個挑戰(zhàn),其實是可以通過時間序列預測來解決。當你們在高峰期苦苦尋找停車位時,又被告知這將收取你比平時更多的費用,你們肯定難以接受。但街道通暢無阻的話,車主停車方便,也能給我?guī)聿簧俚氖杖耄媸且慌e兩得!

          接下來我們來探索一些時間序列算法。

          一些定義

          時間序列預測法

          時間序列預測法是一種歷史資料延伸預測,也稱歷史引伸預測法。是以數(shù)據(jù)數(shù)列所能反映的社會經(jīng)濟現(xiàn)象的發(fā)展過程和規(guī)律性,進行引伸外推,預測其發(fā)展趨勢的方法。

          需要明確一點的是,與回歸分析預測模型不同,時間序列模型依賴于數(shù)值在時間上的先后順序,同樣大小的值改變順序后輸入模型產(chǎn)生的結(jié)果是不同的。

          時間序列預測對商業(yè)有真正的價值,因為它直接應用于定價、庫存和供應鏈問題。雖然深度學習技術(shù)已經(jīng)開始用于獲得更多的洞察力,以更好地預測未來,但時間序列預測仍然是一個主要由經(jīng)典ML技術(shù)提供信息的領(lǐng)域。


          當遇到時間序列這個詞時,你需要了解它在不同語境中的用法。

          時間序列

          在數(shù)學中,時間序列是按時間順序索引(或列出或圖表)的一系列數(shù)據(jù)點。最常見的是,時間序列是在連續(xù)的等間隔時間點上獲得的序列。

          時間序列的一個例子是道瓊斯工業(yè)平均指數(shù)[1]的日收盤價。在信號處理、天氣預報、地震預報和其他可以繪制事件和數(shù)據(jù)點的領(lǐng)域中,經(jīng)常會遇到時間序列圖和統(tǒng)計建模的使用。

          時間序列分析

          時間序列分析,就是對上述時間序列數(shù)據(jù)的分析。時間序列數(shù)據(jù)可以采取不同的形式,包括中斷時間序列,它檢測時間序列在中斷事件前后的演變模式。時間序列所需的分析類型取決于數(shù)據(jù)的性質(zhì)。時間序列數(shù)據(jù)本身可以采用數(shù)字或字符序列的形式。

          時間序列分析考慮了這樣一個事實,即隨著時間的推移獲取的數(shù)據(jù)點可能具有應該考慮的內(nèi)部結(jié)構(gòu)(例如自相關(guān)、趨勢或季節(jié)性變化)

          要進行的分析使用多種方法,包括頻域和時域、線性和非線性等等。可參見了解更多關(guān)于這類數(shù)據(jù)的時間序列分析的多種方法[2]

          時間序列分解

          時間序列由四個部分組成:

          • :季節(jié)性成分
          • :趨勢性成分
          • :周期性成分
          • :殘差,或不規(guī)則組件。

          時間序列分量分解之間的關(guān)系:

          • 加法分解:
            , 在哪里??是當時的數(shù)據(jù)??噸.
          • 乘法分解:
          • ?將乘法關(guān)系變成加法關(guān)系:

          一個加模型是否季節(jié)性波動的幅度不隨水平變化是適當?shù)摹?/span>如果季節(jié)性波動與序列的水平成正比,那么乘法模型是合適的。乘法分解在經(jīng)濟序列中更為普遍。

          時間序列預測

          時間序列預測是使用一個模型來預測未來的價值,該模型基于以前收集的數(shù)據(jù)在過去發(fā)生的模式。雖然可以使用回歸模型來探索時間序列數(shù)據(jù),將時間指數(shù)作為圖表上的??變量,但最好使用特殊類型的模型來分析此類數(shù)據(jù)。

          時間序列數(shù)據(jù)是一組有序的觀測數(shù)據(jù),不像可以通過線性回歸分析的數(shù)據(jù)。最常見的是ARIMA,這是Autoregressive Integrated Moving Average(自回歸綜合移動平均線)的首字母縮寫。

          ARIMA 模型[3]?將一系列的現(xiàn)值與過去的值和過去的預測誤差聯(lián)系起來。它們最適合于分析時域數(shù)據(jù),其中數(shù)據(jù)是隨時間排序的。

          后面推文將介紹使用單變量時間序列[4]構(gòu)建一個ARIMA模型,該模型關(guān)注一個隨時間改變其值的變量。這類數(shù)據(jù)的一個例子是這個數(shù)據(jù)集[5],它記錄了莫納羅亞天文臺每月的二氧化碳濃度:

          CO2YearMonthYearMonth
          330.621975.0419751
          331.401975.1319752
          331.871975.2119753
          333.181975.2919754
          333.921975.3819755
          333.431975.4619756
          331.851975.5419757
          330.011975.6319758
          328.511975.7119759
          328.411975.79197510
          329.251975.88197511
          330.971975.96197512

          時間序列數(shù)據(jù)特征

          在查看時間序列數(shù)據(jù)時,為了更好地理解其模式,需要拆解某些特征。如果你想要分析"信號"包含在時間序列數(shù)據(jù)中,那么就認為這些特征是相對于"信號"的"噪聲"。此時需要通過使用一些統(tǒng)計技術(shù)來抵消這些特征以減少"噪音"。

          時間序列數(shù)據(jù)變動存在規(guī)律性與不規(guī)律性

          時間序列中的每個觀察值大小,是影響變化的各種不同因素在同一時刻發(fā)生作用的綜合結(jié)果。從這些影響因素發(fā)生作用的大小和方向變化的時間特性來看,這些因素造成的時間序列數(shù)據(jù)的變動分為四種類型。

          • 趨勢性
            某個變量隨著時間進展或自變量變化,呈現(xiàn)一種比較緩慢而長期的持續(xù)上升、下降、停留的同性質(zhì)變動趨向,但變動幅度可能不相等。
          • 季節(jié)性
            某因素由于外部影響隨著自然季節(jié)的交替出現(xiàn)高峰與低谷的規(guī)律。
          • 隨機性
            個別為隨機變動,整體呈統(tǒng)計規(guī)律。
          • 綜合性
            實際變化情況是幾種變動的疊加或組合。預測時設(shè)法過濾除去不規(guī)則變動,突出反映趨勢性和周期性變動。

          查看時間序列時首先要考慮的重要特征

          • 是否存在趨勢,意味著平均而言,測量值會隨著時間的推移而增加(或減少)?
          • 是否存在季節(jié)性,這意味著與日歷時間(例如季節(jié)、季度、月份、星期幾等)相關(guān)的高點和低點有規(guī)律地重復模式?
          • 異常值嗎?在回歸中,離群值離你的線很遠。對于時間序列數(shù)據(jù),您的異常值與其他數(shù)據(jù)相距甚遠。
          • 是否存在與季節(jié)性因素無關(guān)的長期周期或時期?
          • 隨著時間的推移是否存在恒定的方差,或者方差是非常量的?
          • 序列水平或方差是否有任何突然變化

          趨勢性

          通常,時間序列中不具有周期性的系統(tǒng)變化稱為趨勢。趨勢是序列隨時間的持續(xù)增加或減少。從時間序列數(shù)據(jù)集中識別、建模甚至刪除趨勢信息可能會帶來好處。

          趨勢類型

          有各種各樣的趨勢,通常分為:

          • 確定性趨勢:這些是持續(xù)增加或減少的趨勢。
          • 隨機性趨勢:這些趨勢會不一致地增加和減少。

          一般來說,確定性趨勢更容易識別和刪除。

          根據(jù)觀察范圍來分類趨勢:

          • 全局趨勢:這些趨勢適用于整個時間序列。
          • 本地趨勢:這些趨勢適用于時間序列的部分或子序列。

          一般來說,全局趨勢更容易識別和應對。

          識別趨勢

          1. 可以繪制時間序列數(shù)據(jù)以查看趨勢是否明顯。
            而在實踐中,識別時間序列中的趨勢可能是一個主觀過程。因此從時間序列中提取或刪除它可能同樣具有主觀性。
          2. 創(chuàng)建數(shù)據(jù)的線圖并檢查圖中的明顯趨勢。
          3. 在圖中添加線性和非線性趨勢線,看看趨勢是否明顯。

          刪除趨勢

          具有趨勢的時間序列稱為非平穩(wěn)的。可以對識別的趨勢進行建模。建模后,可以將其從時間序列數(shù)據(jù)集中刪除。這稱為去趨勢時間序列。

          如果數(shù)據(jù)集沒有趨勢或我們成功地移除了趨勢,則稱該數(shù)據(jù)集是趨勢平穩(wěn)的。

          在機器學習中使用時間序列趨勢

          從機器學習的角度來看,數(shù)據(jù)的趨勢代表著兩個機會:

          1. 刪除信息:刪除扭曲輸入和輸出變量之間關(guān)系的系統(tǒng)信息。
          2. 添加信息:添加系統(tǒng)信息以改善輸入和輸出變量之間的關(guān)系。

          具體來說,作為數(shù)據(jù)準備和清洗練習,可以從時間序列數(shù)據(jù)(以及未來的數(shù)據(jù))中刪除趨勢。這在使用統(tǒng)計方法進行時間序列預測時很常見,但在使用機器學習模型時并不總是能改善結(jié)果。

          季節(jié)性

          季節(jié)性被定義為周期性的波動,季節(jié)性變化或季節(jié)性是隨著時間有規(guī)律地重復的循環(huán)。

          許多時間序列顯示季節(jié)性。例如,零售額往往在春季期間達到頂峰,然后在假期過后下降。因此,零售銷售的時間序列通常會顯示 1月至 3月的銷售額增加,而 4 月和 5 月的銷售額下降。季節(jié)性在經(jīng)濟時間序列中很常見,它在工程和科學數(shù)據(jù)中不太常見。

          時間序列中的周期結(jié)構(gòu)可能是季節(jié)性的,也可能不是。如果它始終以相同的頻率重復,則是季節(jié)性的,否則就不是季節(jié)性的,稱為循環(huán)。

          季節(jié)性類型

          季節(jié)性有很多種。例如:時間、日、每周、每月、每年。因此,確定時間序列問題中是否存在季節(jié)性成分是主觀的。

          確定是否存在季節(jié)性因素的最簡單方法是繪制和查看數(shù)據(jù),可能以不同的比例并添加趨勢線。

          去除季節(jié)性

          一旦確定了季節(jié)性,就可以對其進行建模。季節(jié)性模型可以從時間序列中刪除。此過程稱為季節(jié)性調(diào)整[8]或去季節(jié)性[9]化。

          去除了季節(jié)性成分的時間序列稱為季節(jié)性平穩(wěn)。具有明顯季節(jié)性成分的時間序列被稱為非平穩(wěn)的。

          在時間序列分析領(lǐng)域,有一些復雜的方法可以從時間序列中研究和提取季節(jié)性。

          機器學習中作用

          了解時間序列中的季節(jié)性成分可以提高機器學習建模的性能。

          這可以通過兩種主要方式發(fā)生:

          • 更清晰的信號:從時間序列中識別和去除季節(jié)性成分可以使輸入和輸出變量之間的關(guān)系更清晰。
          • 更多信息:關(guān)于時間序列季節(jié)性分量的附加信息可以提供新信息以提高模型性能。

          這兩種方法都可能對項目有用。并在數(shù)據(jù)清洗和準備期間就需要建模季節(jié)性并將其從時間序列中刪除。

          在特征提取和特征工程期間,可能會提取季節(jié)性信息并將其作為輸入特征。

          其他

          離群值:離群值離標準數(shù)據(jù)方差很遠。

          長期循環(huán):獨立于季節(jié)性因素,數(shù)據(jù)可能顯示一個長期周期,比如持續(xù)超過一年的經(jīng)濟衰退。

          恒定方差:隨著時間的推移,一些數(shù)據(jù)顯示出不斷的波動,比如每天和晚上的能源使用量。

          突變:數(shù)據(jù)可能顯示出突變,可能需要進一步分析。例如,由于COVID而突然關(guān)閉的企業(yè)導致了數(shù)據(jù)的變化。

          以下是時間序列樣本圖[11],顯示了玩家在過去幾年里每天花費在游戲中的貨幣。你能在這個數(shù)據(jù)中識別出上面列出的任何特征嗎?

          時間序列預測方法

          基本規(guī)則

          通過人工經(jīng)驗,挖掘時序數(shù)據(jù)的演化特征,找到時序變化的周期,從而預估時間序列的未來走勢。具體的觀察一個時間序列,當序列存在周期性時,提取時間序列的周期性特征進行預測。

          傳統(tǒng)參數(shù)法

          傳統(tǒng)的參數(shù)預測方法可以分為兩種,

          一種擬合標準時間序列的餐順方法,包括移動平均,指數(shù)平均等;

          另一種是考慮多因素組合的參數(shù)方法,即?AR, MA, ARMA, ARIMA等模型。這類方法比較適用于小規(guī)模,單變量的預測。

          時間序列分解

          一個時間序列往往是一下幾類變化形式的疊加或耦合

          • 長期趨勢 (Secular trend, T)
            長期趨勢指現(xiàn)象在較長時期內(nèi)持續(xù)發(fā)展變化的一種趨向或狀態(tài)。
          • 季節(jié)變動 (Seasonal Variation, S)
            季節(jié)波動是由于季節(jié)的變化引起的現(xiàn)象發(fā)展水平的規(guī)則變動
          • 循環(huán)波動 (Cyclical Variation, C)
            循環(huán)波動指以若干年為期限,不具嚴格規(guī)則的周期性連續(xù)變動
          • 不規(guī)則波動 (Irregular Variation, I)
            不規(guī)則波動指由于眾多偶然因素對時間序列造成的影響

          機器學習

          主要是構(gòu)建樣本數(shù)據(jù)集,采用“時間特征”到“樣本值”的方式,通過有監(jiān)督學習,學習特征與標簽之前的關(guān)聯(lián)關(guān)系,從而實現(xiàn)時間序列預測。

          單步預測

          在時間序列預測中使用滯后的觀測值?,作為輸入變量來預測當前的時間的觀測值?

          多步預測

          使用過去的觀測序列??來預測未來的觀測序列?

          多變量預測

          每個時間有多個觀測值:

          通過不同的測量手段得到了多種觀測值,并且希望預測其中的一個或幾個值。

          深度學習

          對于時間序列的分析,有許多方法可以進行處理,包括:循環(huán)神經(jīng)網(wǎng)絡(luò)-LSTM模型 / 卷積神經(jīng)網(wǎng)絡(luò) / 基于注意力機制的模型(seq2seq)/...

          循環(huán)神經(jīng)網(wǎng)絡(luò)

          循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)框架及其變種(LSTM/GRU/...)是為處理序列型而生的模型,天生的循環(huán)自回歸的結(jié)構(gòu)是對時間序列的很好的表示

          時間卷積網(wǎng)絡(luò)

          時間卷積網(wǎng)絡(luò)(TCN)是一種特殊的卷積神經(jīng)網(wǎng)絡(luò),針對一維空間做卷積,迭代多層捕捉長期關(guān)系。具體的,對于上一層t時刻的值,只依賴于下一層t時刻及其之前的值。

          一個時間序列數(shù)據(jù)--電力使用數(shù)據(jù)

          開始創(chuàng)建一個時間序列模型,根據(jù)過去的使用情況來預測未來的電力使用量。

          本例中的數(shù)據(jù)來自GEFCom2014預測競賽。由2012 - 2014年3年的小時電負荷和溫度值組成。

          import?os
          import?matplotlib.pyplot?as?plt
          import?pandas?as?pd
          %matplotlib?inline
          data_dir?=?'./data'
          energy?=?pd.read_csv('./energy.csv')
          energy.head()

          可以看到有兩列表示date和load


          load
          2012-01-01 00:00:002698.0
          2012-01-01 01:00:002558.0
          2012-01-01 02:00:002444.0
          2012-01-01 03:00:002402.0
          2012-01-01 04:00:002403.0

          可視化

          energy.plot(y='load',?subplots=True,?figsize=(15,?8),?fontsize=12)
          plt.xlabel('timestamp',?fontsize=12)
          plt.ylabel('load',?fontsize=12)
          plt.show()

          現(xiàn)在,繪制2014年7月的第一周,將其作為energy的輸入,在[from date]: [to date]?模式中:

          energy['2014-07-01':'2014-07-07'].plot(y='load',?subplots=True,?figsize=(15,?8),?fontsize=12)
          plt.xlabel('timestamp',?fontsize=12)
          plt.ylabel('load',?fontsize=12)
          plt.show()

          看看這些圖,看看你是否能確定上面列出的任何特征。通過可視化數(shù)據(jù)我們可以推測出什么?后面將介紹創(chuàng)建一個ARIMA模型來創(chuàng)建一些預測。

          參考資料

          [1]?

          道瓊斯工業(yè)平均指數(shù):?https://wikipedia.org/wiki/Time_series

          [2]?

          時間序列分析的多種方法:?https://www.itl.nist.gov/div898/handbook/pmc/section4/pmc4.htm

          [3]?

          ARIMA 模型:?https://online.stat.psu.edu/stat510/lesson/1/1.1

          [4]?

          單變量時間序列:?https://itl.nist.gov/div898/handbook/pmc/section4/pmc44.htm

          [5]?

          數(shù)據(jù)集:?https://itl.nist.gov/div898/handbook/pmc/section4/pmc4411.htm

          [6]?

          重要特征:?https://online.stat.psu.edu/stat510/lesson/1/1.1

          [7]?

          趨勢:?https://machinelearningmastery.com/time-series-trends-in-python

          [8]?

          季節(jié)性調(diào)整:?https://en.wikipedia.org/wiki/Seasonal_adjustment

          [9]?

          季節(jié)性:?https://en.wikipedia.org/wiki/Seasonal_adjustment

          [10]?

          季節(jié)性:?https://machinelearningmastery.com/time-series-seasonality-with-python/

          [11]?

          時間序列樣本圖:?https://www.kaggle.com/kashnitsky/topic-9-part-1-time-series-analysis-in-python

          [12]?

          時間序列:?https://cloud.tencent.com/developer/article/1800614

          [13]?

          時間序列預測法:?https://wiki.mbalib.com/wiki/時間序列預測法



          END


          往期精彩回顧




          本站qq群851320808,加入微信群請掃碼:
          瀏覽 55
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  无码翔田千里 | 日韩国产传媒 | 欧美黄色电影一区二区在线播放 | 日皮太爽了我要看视频 | 国产一区二区三区四 |