def identify(self, root):
     feats, labels = self.getAllFeature(root)
     lps = {}
     cates = []
     for f in feats:
         for label in self.label_set:
             lps[label] = adaboost.predict(f.toArray(), self.model[label])
         mlabel = max(lps, key=lambda k: lps[k])
         if lps[mlabel] <= 0:
             cates.append("NORMAL")
         else:
             cates.append(mlabel)
     return cates, labels
Exemple #2
0
from scipy import *
from zhiqiang import adaboost

##tset = array([[1,2,3],[0,5,1]])
##lset = array([1,0])
##param = adaboost.train(tset,lset)
##testset = array([[9,10,-1],[-1,2,3]])
##pls = adaboost.predict(testset,param)

from scipy import io
dataset = io.loadmat('G:/dataset/mnist/mnist_all.mat')
trainset = concatenate((dataset['train0'],dataset['train1']))
trainset = trainset.astype('float')
(n1,m) = dataset['train1'].shape
(n0,m) = dataset['train0'].shape
labels = ones(n1+n0)
labels[:n0] = -1
param = adaboost.train(trainset, labels, 2)
testset = concatenate((dataset['test0'],dataset['test1']))
testset = testset.astype('float')
pls = adaboost.predict(testset,param)
tn0 = len(dataset['test0'])
tn = len(testset)
tls = ones(tn)
tls[:tn0] = -1
print(sum(tls == pls))