-
-
Notifications
You must be signed in to change notification settings - Fork 1k
/
classifier_multiclassocas_modular.py
42 lines (34 loc) · 1.31 KB
/
classifier_multiclassocas_modular.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
#!/usr/bin/env python
from numpy import *
parameter_list = [[10,3,15,2.1,1,1e-5,1],[20,4,15,2.2,2,1e-5,2]]
def classifier_multiclassocas_modular (num_vec=10,num_class=3,distance=15,width=2.1,C=1,epsilon=1e-5,seed=1):
from modshogun import RealFeatures, MulticlassLabels
from modshogun import Math_init_random
try:
from modshogun import MulticlassOCAS
except ImportError:
print("MulticlassOCAS not available")
return
# reproducible results
random.seed(seed)
Math_init_random(seed)
# generate some training data where each class pair is linearly separable
label_train=array([mod(x,num_class) for x in range(num_vec)],dtype="float64")
label_test=array([mod(x,num_class) for x in range(num_vec)],dtype="float64")
fm_train=array(random.randn(num_class,num_vec))
fm_test=array(random.randn(num_class,num_vec))
for i in range(len(label_train)):
fm_train[int(label_train[i]),i]+=distance
fm_test[int(label_test[i]),i]+=distance
feats_train=RealFeatures(fm_train)
feats_test=RealFeatures(fm_test)
labels=MulticlassLabels(label_train)
classifier = MulticlassOCAS(C,feats_train,labels)
classifier.train()
out = classifier.apply(feats_test).get_labels()
#print label_test
#print out
return out,classifier
if __name__=='__main__':
print('MulticlassOCAS')
classifier_multiclassocas_modular(*parameter_list[0])