def test(): ''' Debug ''' import load import matplotlib.pyplot as plt import os feature_names, data, target_names, targets = load.load_seeds() target_names = np.array(target_names) labels = target_names[targets] pred = apply_knn(data, data, targets) pred = target_names[pred] #label_names = np.unique(labels) # plot original data plt.subplot(1, 2, 1) for k,marker,c in zip(xrange(3), "<ox", "rgb"): plt.scatter( data[labels == target_names[k], 0], data[labels == target_names[k], 2], marker = marker, c = c ); plt.title("origin") # plot knn predicted data plt.subplot(1, 2, 2) for k,marker,c in zip(xrange(3), "<ox", "rgb"): plt.scatter( data[pred == target_names[k], 0], data[pred == target_names[k], 2], marker = marker, c = c) # re-plot misclassified data wrong = plt.scatter( data[pred != labels, 0], data[pred != labels, 2], marker = 's', c = 'y' ); plt.legend([wrong], ["Wrong"], loc='upper right') file_dir = os.path.dirname(os.path.realpath(__file__)) plt.savefig(os.path.join(file_dir, "test", "knn_test.png")) print "Accuracy: %f" % accuracy(labels, pred)
import os import numpy as np import matplotlib.pyplot as plt from matplotlib.colors import ListedColormap from load import load_seeds from knn import apply_knn feature_names, data, target_names, targets = load_seeds() #feature_names, data, target, labels = load_seeds() #label_names = np.unique(labels).tolist() # Regularization mean, std = data.mean(0), data.std(0) data -= mean data /= std x0, x1 = data[:,0].min()*0.9, data[:,0].max()*1.1 y0, y1 = data[:,2].min()*0.9, data[:,2].max()*1.1 x = np.linspace(x0, x1, 100) y = np.linspace(y0, y1, 100) x,y = np.meshgrid(x, y) new_examples = np.vstack([x.ravel(), y.ravel()]).T print new_examples.shape print data[:, (0,2)].shape pred = apply_knn(new_examples, data[:, (0,2)], targets).reshape(x.shape)