-
Notifications
You must be signed in to change notification settings - Fork 0
/
TwoClassClassifiers_MOD.py
121 lines (92 loc) · 3.64 KB
/
TwoClassClassifiers_MOD.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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
"""
2 class cross patient!!!!
this code runs LR and NN at the same time
"""
import numpy as np
import IOutils
# from sklearn.naive_bayes import GaussianNB
from sklearn.linear_model import LogisticRegression
from sklearn import svm
import random
import sys
from sklearn.metrics import confusion_matrix, precision_score, recall_score, f1_score, classification_report
from neuralnetworks.templates import BasicNN2
nn = BasicNN2(max_epochs=100, hidden=[200,50,30], input_shape=(None, 42), output_num_units=2)
ds = IOutils.data_streamer2(keeplist=[ (i,0) for i in xrange(1,12) ])
vt = IOutils.VectorTransformer()
# NaivB = GaussianNB()
lr = LogisticRegression(class_weight="auto")
#svc = svm.SVC(kernel='rbf',C=10,class_weight="auto")
#=======
# svc = svm.SVC(kernel='rbf',C=10,class_weight="auto")
for X_next, Y_next in ds:
X_next = X_next.astype(np.float)/X_next.max()
X_next[np.isnan(X_next)]=0
zipped = zip(X_next,Y_next)
random.shuffle(zipped)
X,Y = zip(*zipped)
X_next = np.array(X)
Y_next = np.array(Y)
X_next = X_next.astype(np.float)
Y_next = vt.transform(Y_next)
Y_next[Y_next != 0] = 1
Y_next[Y_next == 0] = 0
# print np.unique(Y_next)
#for X,Y in ds:
#zipped = zip(X,Y)
#random.shuffle(zipped)
#X,Y = zip(*zipped)
#X = np.array(X)
#Y = np.array(Y)
#Y = vt.transform(Y)
# NaivB.fit(X_next, Y_next)
# linear.fit(X_next, Y_next)
nn.fit(X_next, Y_next)
lr.fit(X_next, Y_next)
ds2 = IOutils.data_streamer2(keeplist=[(12,0)])
X_valid, Y_valid = ds2.next()
# use as follows:
Y_valid = vt.transform(Y_valid)
Y_valid[Y_valid != 0] = 1
Y_valid[Y_valid == 0] = 0
X_valid = X_valid.astype(np.float)
X_valid[np.isnan(X_valid)] = 0
print 'NEURAL NETWORK'
predicted = nn.predict(X_valid)
correct = predicted == Y_valid
print ' correct: ', np.sum(correct)/float(len(correct))
print confusion_matrix(Y_valid, predicted)
print 'Recall:' ,recall_score(Y_valid, predicted, average='weighted')
print 'Precision:' ,precision_score(Y_valid, predicted, average='weighted')
print 'F1 Score:',f1_score(Y_valid, predicted, average='weighted')
print 'classification_report:', classification_report(Y_valid, predicted)
print 'LOGISTICREGRESSION'
predicted = lr.predict(X_valid)
correct = predicted == Y_valid
print ' correct: ', np.sum(correct)/float(len(correct))
print confusion_matrix(Y_valid, predicted)
print 'Recall:' ,recall_score(Y_valid, predicted, average='weighted')
print 'Precision:' ,precision_score(Y_valid, predicted, average='weighted')
print 'F1 Score:',f1_score(Y_valid, predicted, average='weighted')
print 'classification_report:', classification_report(Y_valid, predicted)
#<<<<<<< HEAD
#print 'SVC'
#predicted = svc.predict(X_valid)
#correct = predicted == Y_valid
#print ' correct: ', np.sum(correct)/float(len(correct))
#print confusion_matrix(Y_valid, predicted)
#print 'Recall:' ,recall_score(Y_valid, predicted, average='weighted')
#print 'Precision:' ,precision_score(Y_valid, predicted, average='weighted')
#print 'F1 Score:',f1_score(Y_valid, predicted, average='weighted')
#print 'classification_report:', classification_report(Y_valid, predicted)
#=======
# print 'SVC'
# predicted = svc.predict(X_valid)
# correct = predicted == Y_valid
# print ' correct: ', np.sum(correct)/float(len(correct))
# print confusion_matrix(Y_valid, predicted)
# print 'Recall:' ,recall_score(Y_valid, predicted, average='weighted')
# print 'Precision:' ,precision_score(Y_valid, predicted, average='weighted')
# print 'F1 Score:',f1_score(Y_valid, predicted, average='weighted')
# print 'classification_report:', classification_report(Y_valid, predicted)
#>>>>>>> 6ed240f78c770870351bf8730dcb3b42b7801de7