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
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))