summaryrefslogtreecommitdiff
path: root/2017/ev3-controller/data_processing.py
blob: 164c8bcbf4bd28463e7e7b9c693c9253d2dc3a23 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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()