summaryrefslogtreecommitdiffstats
path: root/data/class.py
diff options
context:
space:
mode:
Diffstat (limited to 'data/class.py')
-rwxr-xr-xdata/class.py70
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)