簡體   English   中英

為時間序列預測預處理數據

[英]Preprocessing data for Time-Series prediction

好的,所以我正在研究如何進行時間序列預測。 像往常一樣,預處理數據是困難的部分。 我知道我必須將數據文件中的“時間戳”轉換為“日期時間”或“時間步長”。

df = pd.read_csv("airpassengers.csv")
month = pd.to_datatime(df['Month'])

(我可能錯誤地解析了數據時間,我看到人們使用pd.read_csv()來解析數據。如果我這樣做了,請告知如何正確執行)

我也了解我擴展數據的部分。 (有人可以向我解釋縮放是如何工作的,我知道它會將我的所有數據都轉換在我給它的范圍內,但是我預測的 output 也會被縮放或其他什么。)

最后,一旦我對數據和時間戳進行了縮放和解析,我將如何使用經過訓練的 model 進行實際預測。 我不知道要輸入什么(例如) model.predict()我做了一些研究,好像我必須改變我的數據集或其他東西,我不太明白文檔在說什么。 該示例與時間序列預測沒有直接關系。

我知道這很多,您現在可能能夠回答所有問題。 我對此很陌生。 盡你所能提供幫助。 謝謝!

因此,因為您正在使用 airpassengers.csv 並詢問預測建模,我假設您正在處理此 github

在我深入回答您的問題之前,我想確保您知道幾件事。

  • 預測中使用了許多不同類型的預測模型。 你可以在這里找到所有關於它們的信息
  • 您提出了很多廣泛的問題,但我會將主要問題分為兩個步驟,並使用我相信您正在嘗試復制的示例來描述正在發生的事情

讓我們分解一下

加載和解析數據

import pandas as pd
import numpy as np
import matplotlib.pylab as plt
%matplotlib inline
from matplotlib.pylab import rcParams
rcParams['figure.figsize'] = 15, 6
air_passengers = pd.read_csv("./data/AirPassengers.csv", header = 0, parse_dates = [0], names = ['Month', 'Passengers'], index_col = 0)

這部分代碼從 a.csv(逗號分隔值)文件加載數據。 它保存在數據框 air_passengers 中。 Inside the function to read in the csv we also state that there's a header in the first row, the first column is full of dates, the name of our columns is assigned, we index our data frame to the first column.

縮放數據

log_air_passengers = np.log(air_passengers.Passengers)

這樣做是為了使數學有意義。 對數是指數的倒數(X^2 與 Log2X 相同)。 使用 numpy 的日志 function 它給了我們自然對數(log e)。 這也稱為自然對數。 您的預測值實際上將非常接近百分比變化,您可以這樣使用它們

現在數據已經被縮放,我們可以為統計建模做准備

log_air_passengers_diff = log_air_passengers - log_air_passengers.shift()
log_air_passengers_diff.dropna(inplace=True)

這會將數據幀更改為前一個數據點和下一個數據點之間的差異,而不僅僅是日志值本身。

您問題的最后一部分包含太多步驟,無法在此處介紹。 也不是調用單個function那么簡單。 我鼓勵您從這里了解更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM