# Copyright 2017 Amra Omanović, Nejka Bolčič, Magda Nowak-Trzos # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. import csv import numpy as np import random import collections #580 def process(length=5, SEED=1552, data='training_data.csv'): set=[] output=[] previous_set=[] input=[] inputs=[] #read the data from file with open(data, 'r') as csvfile: csv_reader = csv.reader(csvfile, delimiter=',') i=0 for row in csv_reader: #create one-hot vector vector=np.zeros((9,), dtype=np.int) vector[int(row[0])]= vector[int(row[1])+3] = vector[int(row[2])+6] = 1; #concatenate the number of vectors defined in "length" if (i < length): previous_set.append(vector.tolist()) else: for pr in previous_set: input=np.append(input, pr) input = np.append(input, vector) inputs.append(input) input=[] previous_set = previous_set[1:]+[vector.tolist()] i = i + 1 #randomize data random.seed(SEED) random.shuffle(inputs) #create inputs and outputs for v in inputs: set.append(v[:-6]) output.append(v[-3:]) #set the size of training set training=int(len(output)*0.9) #create training and test sets training_set=set[:training] training_output=output[:training] test_set=set[training:] test_output=output[training:] return training_set, training_output, test_set, test_output training_x, training_y, test_x, test_y = process()