diff options
| author | Thibaut Horel <thibaut.horel@gmail.com> | 2012-02-22 00:02:27 -0800 |
|---|---|---|
| committer | Thibaut Horel <thibaut.horel@gmail.com> | 2012-02-22 00:03:17 -0800 |
| commit | fb534c575541ba6ad8a9f84872bab14e44e44264 (patch) | |
| tree | 7de51717b8e669c7cd3fb2d5460afa040ec25df7 /data/class.py | |
| parent | be7403f2c948e5b51f13b6ee2fe4dd96422e168a (diff) | |
| download | kinect-fb534c575541ba6ad8a9f84872bab14e44e44264.tar.gz | |
Starting playing around with libsvm. New data files (with no holes) for Jon.
Diffstat (limited to 'data/class.py')
| -rwxr-xr-x | data/class.py | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/data/class.py b/data/class.py new file mode 100755 index 0000000..e7975f9 --- /dev/null +++ b/data/class.py @@ -0,0 +1,70 @@ +#! /usr/bin/python +import copy +import sys +from svmutil import * + +lower = 0.1 +upper = 10 + +def normalize_instances(instances, ranges = None) : + normalized_instances = copy.deepcopy(instances) + if ranges == None : + ranges_dict = dict() + for attribute in normalized_instances[0].keys() : # we iterate on the attributes + column = [instance[attribute] for instance in normalized_instances] + if ranges != None : + minimum = ranges[attribute][0] + maximum = ranges[attribute][1] + else : + minimum = min(column) + maximum = max(column) + ranges_dict[attribute] = [minimum, maximum] + for i in range(len(column)) : + if column[i] == minimum : + column[i] = lower + elif column[i] == maximum : + column[i] = upper + else : + column[i] = lower + (upper-lower) * (column[i] - minimum) / (maximum - minimum) + # Copying normalized values in memory + + for elem, instance in zip(column, normalized_instances): + instance[attribute] = elem + + if ranges == None : + return normalized_instances, ranges_dict + else : + return normalized_instances + + +def read_file(filename) : + y = [] + x = [] + for line in filename: + values = line.rstrip().split(',') + if values[0] != "# dir": + dict = {} + for i in range(9): + if float(values[i+5])!=-1.: + dict[i+1] = float(values[i+5]) + if len(dict)==9: + y += [int(values[1])] + x += [dict] + print line.rstrip() + #for a,b in zip(y,x): + # result = str(a) + # for i in range(9): + # result += " "+str(i+1)+":"+str(b[i+1]) + # print result + #return (y,x) + +train_filename = sys.argv[1] +#test_filename = sys.argv[2] +y1,x1 = read_file(open(train_filename)) +#x1,ranges = normalize_instances(x1) +#print ranges +#exit(0) +#model = svm_train(y1,x1) +#y2,x2 = read_file(open(test_filename)) +#x2 = normalize_instances(x2,ranges) +#p_labels,p_acc,p_vals = svm_predict(y2,x2,model) |
