Load a CSV file, where each row is a feature vector:
In [1]:
%matplotlib inline
import csv
import numpy as np
import matplotlib.pyplot as plt
def load_series(filename, series_idx=1):
try:
with open(filename) as csvfile:
csvreader = csv.reader(csvfile)
data = [float(row[series_idx]) for row in csvreader if len(row) > 0]
normalized_data = (data - np.mean(data)) / np.std(data)
return normalized_data
except IOError:
return None
Split the timeseries dataset into two components. The first section will be for training, and the next section will be for testing.
In [2]:
def split_data(data, percent_train=0.80):
num_rows = len(data)
train_data, test_data = [], []
for idx, row in enumerate(data):
if idx < num_rows * percent_train:
train_data.append(row)
else:
test_data.append(row)
return train_data, test_data
Download some CSV timeseries data. Like the one here https://datamarket.com/data/set/22u3/international-airline-passengers-monthly-totals-in-thousands-jan-49-dec-60#!ds=22u3&display=line.
In [3]:
if __name__=='__main__':
# https://datamarket.com/data/set/22u3/international-airline-passengers-monthly-totals-in-thousands-jan-49-dec-60#!ds=22u3&display=line
timeseries = load_series('international-airline-passengers.csv')
print(np.shape(timeseries))
plt.figure()
plt.plot(timeseries)
plt.show()