diff --git a/knn.py b/knn.py index ef68437befac6a500360d535f4da904314d159ce..02df428d77775902bf40e51fb3dd19bf21bd8c31 100644 --- a/knn.py +++ b/knn.py @@ -45,6 +45,26 @@ def evaluate_knn(data_train, labels_train, data_test, labels_tests, k): accuracy = (labels_tests == result_test).sum() / N return(accuracy) +def bench_knn(): + + k_indices = [i for i in range(20) if i!=0] + accuracies = [] + + # Loop on the k_indices to get all the accuracies + for k in k_indices: + accuracy = evaluate_knn(data_train, labels_train, data_test, labels_test, k) + accuracies.append(accuracy) + print(accuracy) + + # Save and show the graph of accuracies + fig = plt.figure() + plt.plot(k_indices, accuracies) + plt.title("Accuracy as function of k") + plt.show() + plt.savefig(r'C:\Users\danjo\Documents\GitHub\image-classification\results') + + return() + @@ -55,14 +75,15 @@ if __name__ == "__main__": data, labels = read_cifar(main_path) data_train, data_test, labels_train, labels_test = split_dataset(data, labels, 0.9) - print(labels_test) - dists = distance_matrix(data_test, data_train) - #print(dists) + r = knn_predict(dists, labels_train, 10) accurancy = evaluate_knn(data_train, labels_train, data_test, labels_test, 10) - print(r) + print(accurancy) + bench_knn() + + diff --git a/results.png b/results.png new file mode 100644 index 0000000000000000000000000000000000000000..4a41ccf737239cd900842bc7d3acf0115365d6c9 Binary files /dev/null and b/results.png differ diff --git a/results/knn.png b/results/knn.png new file mode 100644 index 0000000000000000000000000000000000000000..587ba139979a3d750505c4befb44eb0ecf38edd7 Binary files /dev/null and b/results/knn.png differ