Skip to content

Instantly share code, notes, and snippets.

@yabyzq
Created May 22, 2018 14:45
Show Gist options
  • Save yabyzq/8059d389dcd9fb6b31a4d92e98fd5a75 to your computer and use it in GitHub Desktop.
Save yabyzq/8059d389dcd9fb6b31a4d92e98fd5a75 to your computer and use it in GitHub Desktop.
LSTM Time Series - Start Script
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