-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathone_calss_SVM.py
79 lines (55 loc) · 1.29 KB
/
one_calss_SVM.py
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
61
62
63
64
65
66
67
68
69
70
71
72
import sys
import os
import numpy as np
from sklearn import svm
from sklearn.externals import joblib
import sys, getopt
myopts, args = getopt.getopt(sys.argv[1:],"m:i:o:")
model=''
input_file=''
output_file=''
for o,a in myopts :
if o == '-m' :
model = a
elif o == '-i' :
input_file = a
elif o == '-o' :
output_file = a
print 'model number' + ':' + model
print 'input_file' + ':' + input_file
print 'output_file' + ':' + output_file
if model == '1' :
clf = joblib.load('model1.pkl')
elif model == '2' :
clf = joblib.load('model2.pkl')
elif model == '3' :
clf = joblib.load('model3.pkl')
f=open(input_file,'r')
fline = f.readline()
head = fline
fline = f.readline()
test=[]
while fline :
fline = fline.strip()
fso = fline.split('\t')
instance=[]
instance.append(float(fso[0]))
instance.append(float(fso[1]))
test.append(instance)
fline = f.readline()
f.close()
X_test = np.r_[test]
predicted = clf.predict(X_test)
#output
g=open(output_file,'w')
g.write(head)
i=0
while i < len(predicted) :
g.write(str(test[i][0]) + '\t' + str(test[i][1]))
if predicted[i] == 1 :
g.write('\t' + 'deleterious' + '\n')
elif predicted[i] == -1 :
g.write('\t' + 'benign' + '\n')
i=i+1
g.close()
print "\n\ndone!"