[python] 머신러닝 모델의 시각화 방법

머신러닝 모델을 이해하고 해석하는 데 있어 시각화는 매우 중요합니다. 모델의 결과를 시각적으로 표현하면 복잡한 데이터를 이해하기 쉬워지고 모델의 동작 방식을 파악할 수 있습니다. 이번 포스팅에서는 파이썬의 matplotlib 라이브러리를 사용하여 머신러닝 모델을 시각화하는 방법에 대해 알아보겠습니다.

1. 중요한 피처의 중요도 시각화하기

머신러닝 모델의 중요한 피처를 시각화하여 어떤 피처가 모델의 예측에 영향을 미치는지 확인할 수 있습니다. 예를 들어, 결정 트리 모델의 피처 중요도를 시각화하는 방법은 다음과 같습니다.

import matplotlib.pyplot as plt
import numpy as np

# 중요도가 높은 순으로 피처의 인덱스를 정렬
indices = np.argsort(model.feature_importances_)[::-1]

# 각 피처의 중요도를 막대 그래프로 표시
plt.bar(range(X.shape[1]), model.feature_importances_[indices])
plt.show()

2. 예측 결과 시각화하기

모델의 예측 결과를 시각화하여 실제 값과 비교하거나 모델의 성능을 평가할 수 있습니다. 예를 들어, 회귀 모델의 예측 결과를 산점도로 시각화하는 방법은 다음과 같습니다.

plt.scatter(y_test, model.predict(X_test))
plt.xlabel('Actual')
plt.ylabel('Predicted')
plt.show()

3. 모델의 결정 경계 시각화하기

분류 모델의 결정 경계를 시각화하여 모델이 데이터를 어떻게 분류하는지 확인할 수 있습니다. 예를 들어, SVM 모델의 결정 경계를 시각화하는 방법은 다음과 같습니다.

# 결정 경계 시각화
x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.02),
                     np.arange(y_min, y_max, 0.02))
Z = model.predict(np.c_[xx.ravel(), yy.ravel()])

Z = Z.reshape(xx.shape)
plt.contourf(xx, yy, Z, alpha=0.8)
plt.scatter(X[:, 0], X[:, 1], c=y, edgecolors='k')
plt.show()

머신러닝 모델의 시각화는 모델을 이해하고 해석하는 데 중요한 도구입니다. matplotlib 등의 시각화 라이브러리를 이용하여 모델의 결과를 시각적으로 표현함으로써 보다 효과적인 모델 분석이 가능합니다.

Reference