더북(TheBook)

7 모델 정확도 살펴보기

지금까지 심층 신경망 모델을 설계하고, 그 모델을 학습시켰습니다. 이제 그 모델의 성능이 어느 정도인지 확인해 봐야겠죠? 지금부터 인공지능 모델이 얼마나 잘 학습하였는지 시험해 보겠습니다. 시험 내용은 ‘검증 데이터를 얼마나 잘 맞히는가’입니다.

score = model.evaluate(X_test, Y_test)
print('Test score:', score[0])
print('Test accuracy:', score[1])

실행 결과

313/313 [==============================] - 1s 2ms/step - loss: 0.0817 - accuracy: 0.9800
Test score: 0.08166316896677017
Test accuracy: 0.9800000190734863

score = model.evaluate(X_test, Y_test)

케라스의 evaluate 함수는 모델의 정확도를 평가할 수 있는 기능을 제공합니다. 이 함수를 사용하려면 두 가지 데이터를 넣어야 합니다. 첫 번째 데이터는 테스트할 데이터로, 여기에서는 X_test를 입력합니다. 두 번째 데이터는 테스트할 데이터의 정답으로, 여기에서는 Y_test를 입력합니다.

evaluate 함수에 데이터를 넣으면 두 가지 결과를 보여주는데 첫 번째는 바로 오차값(loss)입니다. 오차값은 0~1 사이의 값으로, 0이면 오차가 없는 것이고 1이면 오차가 아주 크다는 것을 의미합니다. 두 번째는 정확도(accuracy)입니다. 모델이 예측한 값과 정답이 얼마나 정확한지에 대해서 0과 1 사이의 값으로 보여줍니다. 1에 가까울 수록 정답을 많이 맞춘 것을 의미합니다.

생성한 모델에 X_test, Y_test 데이터를 입력하여 얻은 두 가지 결괏값인 오차와 정확도를 score 변수에 넣습니다.

print('Test loss:', score[0])

score 변수에는 오차값과 정확도가 들어 있습니다. 여기에서는 오차값을 출력하기 위해 score 변수의 첫 번째 항목인 점수를 출력합니다. score[0]에서 숫자가 1이 아니고 0인 이유는 이제 다들 알죠? 프로그래밍에서는 첫 번째가 0으로 시작하기 때문입니다.

print('Test accuracy:', score[1])

score 변수의 두 번째 항목인 정확도를 출력합니다. 최종 오차는 0.08, 정확도는 0.98이 나온 것을 확인할 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.