for i in range(len(test_labels)): confuse[class_ind[res[i]], class_ind[test_labels[i]]] += 1 print('Confusion matrix for') print(classnames) print(confuse) filelist_train = get_imagelist('../data/gesture/train') filelist_test = get_imagelist('../data/gesture/test') imlist = filelist_train + filelist_test # process images at fixed size (50,50) for filename in imlist: featfile = filename[:-3] + 'dsift' dsift.process_image_dsift(filename, featfile, 10, 5, resize=(50, 50)) features, labels = read_gesture_features_labels('../data/gesture/train/') test_features, test_labels = read_gesture_features_labels('../data/gesture/test/') classnames = unique(labels) # test kNN k = 1 knn_classifier = knn.KnnClassifier(labels, features) res = array([knn_classifier.classify(test_features[i], k) for i in range(len(test_labels))]) # accuracy acc = sum(1.0 * (res == test_labels)) / len(test_labels) print('Accuracy:', acc) print_confusion(res, test_labels, classnames)
pklist=['points_normal.pkl','points_ring.pkl'] figure() # load 2D points using Pickle for i, pklfile in enumerate(pklist): with open(pklfile, 'r') as f: class_1 = pickle.load(f) class_2 = pickle.load(f) labels = pickle.load(f) # load test data using Pickle with open(pklfile[:-4]+'_test.pkl', 'r') as f: class_1 = pickle.load(f) class_2 = pickle.load(f) labels = pickle.load(f) model = knn.KnnClassifier(labels,vstack((class_1,class_2))) # test on the first point print model.classify(class_1[0]) #define function for plotting def classify(x,y,model=model): return array([model.classify([xx,yy]) for (xx,yy) in zip(x,y)]) # lot the classification boundary subplot(1,2,i+1) imtools.plot_2D_boundary([-6,6,-6,6],[class_1,class_2],classify,[1,-1]) titlename=pklfile[:-4] title(titlename) show()