코드를 실행하면 이 퍼셉트론 모델이 45개의 샘플에서 한 개를 잘못 분류합니다. 테스트 데이터셋에 대한 분류 오차는 약 0.022 또는 2.2%입니다(1/45 ≈ 0.022).
Note ≡ 분류 오차 vs 정확도
분류 오차 대신 많은 머신 러닝 기술자는 모델의 분류 정확도(accuracy)를 계산합니다. 계산은 다음과 같습니다.
1 - 오차 = 0.978 또는 97.8%
분류 오차와 정확도 중 어느 것을 선택해도 괜찮습니다.
사이킷런 라이브러리는 metrics 모듈 아래에 다양한 성능 지표를 구현해 놓았습니다. 예를 들어 테스트 데이터셋에서 퍼셉트론의 분류 정확도는 다음과 같이 계산합니다.
>>> from sklearn.metrics import accuracy_score
>>> print('정확도: %.3f' % accuracy_score(y_test, y_pred))
정확도: 0.978
y_test는 진짜 클래스 레이블이고 y_pred는 앞서 예측한 클래스 레이블입니다. 사이킷런의 분류기(classifier)는 분류기의 예측 정확도를 계산하는 score 메서드를 가지고 있습니다. 이 메서드는 predict 메서드와 accuracy_score 메서드를 연결하여 정확도를 계산합니다.
>>> print('정확도: %.3f' % ppn.score(X_test_std, y_test))
정확도: 0.978
Note ≡ 과대적합
이 장에서는 테스트 데이터셋을 기반으로 모델 성능을 평가합니다. 6장에서 과대적합(overfitting)을 감지하고 방지하기 위해 학습 곡선과 같은 그래프 분석을 포함하여 다양한 기법을 배울 것입니다. 이 장에서 나중에 다시 보겠지만 과대적합이란 훈련 데이터에 있는 패턴은 감지하지만 본 적 없는 데이터에 일반화되지 못하는 것을 의미합니다.