knn_misclassification_rate = np.zeros(3) for index, k in enumerate([1, 5, 10]): knn = sklearn.neighbors.KNeighborsClassifier(n_neighbors=k) knn.fit(X_train, y_train) knn_result = knn.predict(X_test) knn_misclassification_rate[index] = np.mean(knn_result != y_test) plt.figure() plt.plot(1 / np.array([1, 5, 10]), knn_misclassification_rate, "-bo") plt.suptitle("Misclassification rate v.s. 1/k of KNN") plt.show() print(knn_misclassification_rate) # Question 5 # k_nearest_neighbors = KNearestNeighbors(1) k_nearest_neighbors.fit(X_train, y_train) knn_result = k_nearest_neighbors.predict(X_test) knn_naive_misclassification_rate = np.mean(knn_result != y_test) print(knn_naive_misclassification_rate) # Question 7 # w_knn_misclassification_rate = np.zeros(3) for index, k in enumerate([1, 5, 10]): knn = WeightedKNearestNeighbors(n_neighbors=k) knn.fit(X_train, y_train) knn_result = knn.predict(X_test) w_knn_misclassification_rate[index] = np.mean(knn_result != y_test) plt.figure() plt.plot(1 / np.array([1, 5, 10]), w_knn_misclassification_rate, "-bo") plt.suptitle("Misclassification rate v.s. 1/k of weighted KNN") plt.show()