summaryrefslogtreecommitdiff
path: root/2017/ev3-controller/data_processing.py
diff options
context:
space:
mode:
Diffstat (limited to '2017/ev3-controller/data_processing.py')
-rw-r--r--2017/ev3-controller/data_processing.py60
1 files changed, 60 insertions, 0 deletions
diff --git a/2017/ev3-controller/data_processing.py b/2017/ev3-controller/data_processing.py
new file mode 100644
index 0000000..164c8bc
--- /dev/null
+++ b/2017/ev3-controller/data_processing.py
@@ -0,0 +1,60 @@
+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()
+
+
+
+