Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

TensorFlow와 Python으로 IMDB 데이터셋의 훈련·검증 정확도 그래프 시각화하기

TensorFlow란 무엇인가?

TensorFlow는 구글(Google)이 제공하는 머신러닝 프레임워크입니다. 오픈소스로 공개되어 있으며, Python과 함께 사용하여 다양한 알고리즘과 딥러닝 애플리케이션을 구현할 수 있습니다. 연구 목적뿐만 아니라 실제 프로덕션 환경에서도 널리 활용되고 있습니다.

Windows 환경에서는 아래 명령어 한 줄로 'tensorflow' 패키지를 설치할 수 있습니다.

pip install tensorflow

IMDB 데이터셋 소개

'IMDB' 데이터셋은 5만 건이 넘는 영화 리뷰로 구성되어 있습니다. 이 데이터셋은 주로 자연어 처리(NLP, Natural Language Processing) 관련 작업에 사용됩니다.

이 글의 코드는 Google Colaboratory(이하 Colab)에서 실행했습니다. Colab은 브라우저에서 바로 Python 코드를 실행할 수 있도록 도와주며, 별도의 설정 없이 GPU(그래픽 처리 장치)를 무료로 사용할 수 있다는 장점이 있습니다. Colaboratory는 Jupyter Notebook을 기반으로 만들어졌습니다.

정확도 시각화 코드 예제

다음은 훈련된 IMDB 데이터셋의 훈련 정확도와 검증 정확도를 시각화하는 플롯을 생성하는 코드입니다.

예제 코드

plt.plot(epochs, acc, 'bo', label='Training acc')
plt.plot(epochs, val_acc, 'b', label='Validation acc')
plt.title('Training and validation accuracy')
plt.xlabel('Epochs')
plt.ylabel('Accuracy')
plt.legend(loc='lower right')

plt.show()

코드 출처: https://www.tensorflow.org/tutorials/keras/text_classification

실행 결과

TensorFlow와 Python으로 IMDB 데이터셋의 훈련·검증 정확도 그래프 시각화하기

코드 설명

  • 모델에 데이터를 학습시킨 후에는 실제 값과 예측 값을 비교해야 모델의 성능을 평가할 수 있습니다.

  • 이를 가장 직관적으로 확인하는 방법은 바로 시각화입니다.

  • 따라서 'matplotlib' 라이브러리를 활용하여 훈련 데이터셋과 검증 데이터셋 각각에 대한 정확도를 그래프로 그립니다.

  • 그래프의 x축은 모델을 학습시키는 데 사용된 에포크(epoch), 즉 학습 반복 횟수를 기준으로 합니다.

이렇게 그려진 그래프를 통해 에포크가 진행됨에 따라 훈련 정확도와 검증 정확도가 어떻게 변화하는지 한눈에 파악할 수 있으며, 과대적합(overfitting) 여부를 판단하는 데에도 유용하게 활용됩니다.