-
-
Save yabyzq/8059d389dcd9fb6b31a4d92e98fd5a75 to your computer and use it in GitHub Desktop.
LSTM Time Series - Start Script
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from datetime import date, timedelta | |
import pandas as pd | |
import numpy as np | |
from sklearn.metrics import mean_squared_error | |
from keras.models import Sequential | |
from keras.layers.core import Dense, Dropout, Activation | |
from keras.layers import LSTM | |
from keras import callbacks | |
from keras.callbacks import ModelCheckpoint | |
data = pd.read_csv("C:/Users/Administrator/Desktop/LSTM/simple.csv",parse_dates=["date"]) | |
data = data.set_index(pd.DatetimeIndex(data['date'],freq = 'D')).drop(['date'], axis=1) | |
data.head() | |
cut_off = pd.datetime(2018, 2, 10) | |
data_train = data.loc[data.index<cut_off] | |
data_test = data.loc[data.index>=cut_off] | |
def get_timespan(data, date, minus, periods, freq='D'): | |
return data.loc[pd.date_range(date - timedelta(days=minus), periods=periods, freq=freq)] | |
train_start_date = pd.datetime(2018, 2, 8) | |
def convert_timeseries(data_train, train_start_date, is_train=True): | |
X = pd.DataFrame({"last_1": get_timespan(data_train, train_start_date, 1, 1).values.ravel(), | |
"last_3_mean": get_timespan(data_train, train_start_date, 3, 3).mean().values,#last 3 | |
"last_7_mean": get_timespan(data_train, train_start_date, 7, 7).mean().values}) | |
for i in range(7): | |
X['last_4_dow{}_mean'.format(i)] = get_timespan(data_train, train_start_date, 28-i, 4, freq='7D').mean().values #get every week last 7 | |
if is_train: | |
y = data_train.loc[pd.date_range(train_start_date, periods=1)].values | |
return X, y | |
return X | |
X_train, y_train = convert_timeseries(data_train, train_start_date) | |
print(X_train) | |
print(y_train) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment