티스토리 뷰

데이터 분석이나 머신러닝에서 결과를 시각적으로 확인하는 것은 매우 유용합니다.

matplotlib를 이용하여 keras를 이용한 학습 결과를 그래프로 확인해보겠습니다.

 


keras에서 model.fit 을 이용하여 학습하면 history 속성을 통해 학습결과를 제공합니다.

기본적으로 loss, acc, val_loss, val_acc 4가지 항목을 제공해줍니다.

 


위에서 얻어진 데이터를 그대로 가져와서 간단하게 그래프로 만들어보겠습니다.

import matplotlib.pyplot as plt

plt.rcParams["font.family"] = 'Malgun Gothic'
plt.rcParams["font.size"] = 16
plt.rcParams["figure.figsize"] = (14, 9)

history = {'loss': [0.6621850869171322, 0.10505671877289811, 0.061623894130345434, 0.04349591266035956, 0.03689768679376963, 0.03216209222923014, 0.027957415434477297, 0.02611819637788388, 0.023386988417286377, 0.021494483297760023],
           'acc': [0.76808333, 0.9704375, 0.9835625, 0.9878542, 0.98995835, 0.99091667, 0.99291664, 0.9932708, 0.99429166, 0.99464583],
           'val_loss': [0.23390186043580374, 0.0501614968109255, 0.06609677345879997, 0.04070061724481396, 0.039028068189590155, 0.03976498368000224, 0.03130533290253819, 0.045133131691797945, 0.04908174880024672, 0.08758814916406588],
           'val_acc': [0.9295833, 0.9860833, 0.98075, 0.98908335, 0.99058336, 0.98983335, 0.99233335, 0.991, 0.99016666, 0.98658335]}

fig, axs = plt.subplots(1, 2)

loss_ax = axs[0]
loss_ax.plot(history['loss'], 'y', label='train loss')
loss_ax.plot(history['val_loss'], 'r', label='val loss')

acc_ax = axs[1]
acc_ax.plot(history['acc'], 'b', label='train acc')
acc_ax.plot(history['val_acc'], 'g', label='val acc')

loss_ax.set_xlabel('epoch')
acc_ax.set_xlabel('epoch')
loss_ax.set_ylabel('loss')
acc_ax.set_ylabel('accuracy')

loss_ax.legend(loc='upper right')
acc_ax.legend(loc='lower right')

plt.show()

 

먼저 matplotlib 라이브러리의 pyplot을 가져옵니다. 일반적으로 plt라는 별칭을 많이 사용합니다.

 

plt.rcParams를 통해 전역 설정을 할 수 있습니다. 폰트는 "맑은 고딕"와 글씨 크기는 16, 그래프의 창 크기는 (14, 9)로 설정했습니다.

 

참고로 기본 default 폰트는 한글을 제공하지 않아서 그래프에 한글 라벨 등을 넣을 시에 깨짐 현상이 생길 수 있습니다.

 

fig, axs = plt.subplots(1,2) 는 1행 2열의 서브플롯을 갖는 figure를 생성합니다. 인자는 생략가능합니다.

 

(1,2)의 인자를 입력했기 때문에 axs는 2개의 플롯을 갖는 리스트의 형태로 반환됩니다.

첫 번째 그래프 (axs_[0])를 loss_ax에 할당합니다.

 

그리고 plot 명령어를 통해 그래프를 그립니다. 먼저 history의 loss항목을 이용해 그래프를 그리고 선 색은 yellow('y')로 지정하겠습니다. 그리고 label을 표시해줍니다. 

 

set_xlabel, sex_ylabel을 통해 축의 라벨을 설정해주고, legend로 범례를 추가할 수 있습니다.

 

마지막으로 plt.show 명령어를 통해 figure를 보여줍니다.

 


실행결과:

 

다음과 같이 그래프를 볼 수 있습니다.


아래의 링크에서 더 자세한 활용방법을 확인하실 수 있습니다.

 

matplotlib examples

 

Thumbnail gallery — Matplotlib 2.0.2 documentation

 

matplotlib.org

 

matplotlib documents

 

matplotlib.pyplot — Matplotlib 3.3.1 documentation

cubehelix Unlike most other color schemes cubehelix was designed by D.A. Green to be monotonically increasing in terms of perceived brightness. Also, when printed on a black and white postscript printer, the scheme results in a greyscale with monotonically

matplotlib.org


 

댓글
반응형
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함