[英]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.