Page 14 -
P. 14

코드 3-4 모델 정확도
                 from sklearn.metrics import accuracy_score
                 y_pred = knn.predict(X_test)
                 print("정확도: {}".format(accuracy_score(y_test, y_pred)))



               그러면 다음 결과가 출력됩니다.

                 정확도: 0.9333333333333333

               참고로 정확도 실행 결과가 책 결과와 다를 수 있습니다. train_test_split() 메서드는 데이터를

               무작위로 분할하므로 코드를 실행할 때마다 정확도에 차이가 있습니다. 여러 차례 실행한 후 평균
               을 찾는 것이 좋습니다.

               K=50일 때 예측 값이 약 93%로, 수치가 높습니다. 그럼 이제 최적의 K 값을 구하고 그것에 대한
               정확도를 살펴보겠습니다.

               for 문을 이용하여 K 값을 1부터 10까지 순환하면서 최적의 K 값과 정확도를 찾습니다.

                코드 3-5 최적의 K 찾기

                 k = 10
                 acc_array = np.zeros(k)
                 for k in np.arange(1, k+1, 1):    K는 1에서 10까지 값을 취함
                     classifier = KNeighborsClassifier(n_neighbors=k).fit(X_train, y_train)
                     y_pred = classifier.predict(X_test)          for 문을 반복하면서 K 값 변경
                     acc = metrics.accuracy_score(y_test, y_pred)
                     acc_array[k-1] = acc

                 max_acc = np.amax(acc_array)
                 acc_list = list(acc_array)
                 k = acc_list.index(max_acc)
                 print("정확도", max_acc, "으로 최적의 k는", k+1, "입니다.")



               다음은 최적의 K와 그에 대한 정확도 결과입니다.           4

                 정확도 1.0 으로 최적의 k는 1 입니다.







               4   실행 결과가 책과 다를 수 있습니다.

         070
   9   10   11   12   13   14   15   16   17   18   19