Apr-10-2019, 03:29 AM
I get the answer but the output pictures are wrong - may I know which part on my programming is wrong
# read in the iris data from sklearn.datasets import load_iris iris = load_iris() # create X (features) and y (response) X = iris.data y = iris.target from sklearn.neighbors import KNeighborsClassifier k1 = (1, 2, 3, 4, 5, 6, 7, 8, 9) k2 = (10, 15, 20, 25, 30, 35, 40) knn = KNeighborsClassifier(n_neighbors=10) knn.fit(X, y) y_pred = knn.predict(X) from sklearn import metrics metrics.accuracy_score(y,y_pred) knn = KNeighborsClassifier(n_neighbors=1) from sklearn.cross_validation import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4, random_state=0) # import Matplotlib (scientific plotting library) import matplotlib.pyplot as plt import numpy as np # try K=1 through K=9 and record testing accuracy k1_range = range(1, 9) k2_range = range(10, 40) # create Python dictionary using [] scores1 = [] for k1 in k1_range: knn = KNeighborsClassifier(n_neighbors=k1, metric='minkowski', p=2) knn.fit(X_train, y_train) y_pred = knn.predict(X_test) scores1.append(metrics.accuracy_score(y_test, y_pred)) scores2 = [] for k2 in k2_range: knn = KNeighborsClassifier(n_neighbors=k2, metric='minkowski', p=2) knn.fit(X_train, y_train) y_pred = knn.predict(X_test) scores2.append(metrics.accuracy_score(y_test, y_pred)) # plot the relationship between K and testing accuracy # plt.plot(x_axis, y_axis) plt.subplot(211) plt.plot(k1_range, scores1) plt.yticks(np.arange(0.93, 0.98, 0.03)) plt.xlabel('Number of neighbors') plt.ylabel('Accuracy') plt.subplot(212) plt.plot(k2_range, scores2) plt.yticks(np.arange(0.91, 0.98, 0.03)) plt.xlabel('Number of neighbors') plt.ylabel('Accuracy') plt.tight_layout() plt.show()
Please see the attached file -
![[Image: JLZov.jpg]](https://i.stack.imgur.com/JLZov.jpg)
Please help me to correct the pictures as refer to the attached image file