<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 如何將時間序列數據集與 Python 區分開來 > 原文: [https://machinelearningmastery.com/difference-time-series-dataset-python/](https://machinelearningmastery.com/difference-time-series-dataset-python/) 差分是時間序列中流行且廣泛使用的數據變換。 在本教程中,您將了解如何使用 Python 將差異操作應用于時間序列數據。 完成本教程后,您將了解: * 關于差分運算,包括滯后差和差分順序的配置。 * 如何開發差分操作的手動實現。 * 如何使用內置的 Pandas 差分功能。 讓我們開始吧。 ![How to Difference a Time Series Dataset with Python](https://img.kancloud.cn/7a/5c/7a5c4739301ce14415ce48334b5eb49f_640x478.jpg) 如何區分時間序列數據集與 Python 照片由 [Marcus](https://www.flickr.com/photos/tempoworld/7326465464/) ,保留一些權利。 ## 為什么差異時間序列數據? 差分是一種轉換時間序列數據集的方法。 它可用于消除序列對時間的依賴性,即所謂的時間依賴性。這包括趨勢和季節性等結構。 > 差異可以通過消除時間序列水平的變化來幫助穩定時間序列的均值,從而消除(或減少)趨勢和季節性。 - 第 215 頁,[預測:原則與實踐](http://www.amazon.com/dp/0987507109?tag=inspiredalgor-20) 通過從當前觀察中減去先前的觀察來執行差分。 ```py difference(t) = observation(t) - observation(t-1) ``` 以這種方式,可以計算一系列差異。 ### 滯后差異 將連續觀察之間的差異稱為滯后-1 差異。 可以調整滯后差異以適應特定的時間結構。 對于具有季節性成分的時間序列,滯后可以預期為季節性的周期(寬度)。 ### 差異訂單 在執行差分運算之后,例如在非線性趨勢的情況下,時間結構可能仍然存在。 這樣,差分過程可以重復多次,直到所有時間依賴性都被消除。 執行差分的次數稱為差分順序。 ## 洗發水銷售數據集 該數據集描述了 3 年期間每月洗發水的銷售數量。 單位是銷售計數,有 36 個觀察。原始數據集歸功于 Makridakis,Wheelwright 和 Hyndman(1998)。 [您可以在此處下載并了解有關數據集的更多信息](https://datamarket.com/data/set/22r0/sales-of-shampoo-over-a-three-year-period)。 下面的示例加載并創建已加載數據集的圖。 ```py from pandas import read_csv from pandas import datetime from matplotlib import pyplot def parser(x): return datetime.strptime('190'+x, '%Y-%m') series = read_csv('shampoo-sales.csv', header=0, parse_dates=[0], index_col=0, squeeze=True, date_parser=parser) series.plot() pyplot.show() ``` 運行該示例將創建在數據中顯示清晰線性趨勢的圖。 ![Shampoo Sales Dataset Plot](https://img.kancloud.cn/8d/58/8d588dd57598f15129e9e8500c26168a_800x600.jpg) 洗發水銷售數據集圖 ## 手動差分 我們可以手動區分數據集。 這涉及開發一個創建差異數據集的新功能。該函數將遍歷提供的序列并以指定的間隔或滯后計算差異值。 以下名為 _difference()_ 的函數實現了此過程。 ```py # create a differenced series def difference(dataset, interval=1): diff = list() for i in range(interval, len(dataset)): value = dataset[i] - dataset[i - interval] diff.append(value) return Series(diff) ``` 我們可以看到該函數在指定的時間間隔后小心地開始差異數據集,以確保實際上可以計算差值。定義默認間隔或滯后值 1。這是一個合理的默認值。 進一步的改進是還能夠指定執行差分操作的次序或次數。 以下示例將手動 _ 差異()_ 功能應用于 Shampoo Sales 數據集。 ```py from pandas import read_csv from pandas import datetime from pandas import Series from matplotlib import pyplot def parser(x): return datetime.strptime('190'+x, '%Y-%m') # create a differenced series def difference(dataset, interval=1): diff = list() for i in range(interval, len(dataset)): value = dataset[i] - dataset[i - interval] diff.append(value) return Series(diff) series = read_csv('shampoo-sales.csv', header=0, parse_dates=[0], index_col=0, squeeze=True, date_parser=parser) X = series.values diff = difference(X) pyplot.plot(diff) pyplot.show() ``` 運行該示例將創建差異數據集并繪制結果。 ![Manually Differenced Shampoo Sales Dataset](https://img.kancloud.cn/b1/fc/b1fc56519325e9adcc7c3eeb576b40e3_800x600.jpg) 手動差異的洗發水銷售數據集 ## 自動差分 Pandas 庫提供了自動計算數據集差異的功能。 在[系列](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.diff.html)和 [DataFrame](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.diff.html) 對象上都提供了 _diff()_ 功能。 與上一節中手動定義的差異函數一樣,它需要一個參數來指定間隔或滯后,在本例中稱為 _ 周期 _。 下面的示例演示了如何在 Pandas Series 對象上使用內置差異函數。 ```py from pandas import read_csv from pandas import datetime from matplotlib import pyplot def parser(x): return datetime.strptime('190'+x, '%Y-%m') series = read_csv('shampoo-sales.csv', header=0, parse_dates=[0], index_col=0, squeeze=True, date_parser=parser) diff = series.diff() pyplot.plot(diff) pyplot.show() ``` 與上一節一樣,運行該示例會繪制差異數據集。 除了需要更少的代碼之外,使用 Pandas 功能的好處是它可以維護差異系列的日期時間信息。 ![Automatic Differenced Shampoo Sales Dataset](https://img.kancloud.cn/e4/65/e465211550c5f942f5a015771e094e74_800x600.jpg) 自動差異洗發水銷售數據集 ## 摘要 在本教程中,您了解了如何使用 Python 將差異操作應用于時間序列數據。 具體來說,你學到了: * 關于差異操作,包括滯后和順序的配置。 * 如何手動實現差異變換。 * 如何使用內置的 Pandas 實現差異變換。 您對差異或此帖有任何疑問嗎? 在下面的評論中提出您的問題。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看