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()
# create SVM prob = svm_problem(labels, samples) param = svm_parameter('-t 2') # train SVM on data m = svm_train(prob, param) # how did the training do? res = svm_predict(labels, samples, m) # load test data using Pickle with open('../data/points_normal_test.pkl', 'r') as f: class_1 = pickle.load(f) class_2 = pickle.load(f) labels = pickle.load(f) # convert to lists for libsvm class_1 = map(list, class_1) class_2 = map(list, class_2) # define function for plotting def predict(x, y, model=m): return array(svm_predict([0] * len(x), map(list, zip(x, y)), model)[0]) # plot the classification boundary imtools.plot_2D_boundary([-6, 6, -6, 6], [array(class_1), array(class_2)], predict, [-1, 1]) show()