[파이썬] xgboost에서의 대화식 시각화

XGBoost는 강력한 기계 학습 알고리즘으로 알려져 있습니다. 그러나 모델의 결과를 이해하고 조정하는 것은 도전적일 수 있습니다. 이런 경우에 대화식 시각화 도구를 활용하여 모델의 동작 및 결과를 시각화할 수 있습니다. 이 글에서는 Python에서 xgboost 모델의 대화식 시각화에 대해 알아보겠습니다.

패키지 설치

대화식 시각화를 위해 다음 패키지를 설치해야 합니다: graphvizmatplotlib, 그리고 xgboost.

pip install graphviz matplotlib xgboost

모델 훈련

먼저, xgboost 모델을 훈련시켜야 합니다. 이 예제에서는 유방암 데이터셋을 사용합니다. 다음과 같이 데이터를 불러와서 모델을 훈련합니다.

import xgboost as xgb
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split

# 데이터 로드
data = load_breast_cancer()
X, y = data.data, data.target

# 학습 데이터와 테스트 데이터로 분할
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# xgboost 모델 훈련
model = xgb.XGBClassifier()
model.fit(X_train, y_train)

트리 시각화

xgboost에서는 학습된 모델의 트리를 시각화할 수 있는 plot_tree 함수를 제공합니다.

import matplotlib.pyplot as plt

# 트리 시각화
xgb.plot_tree(model, num_trees=0)
plt.show()

위의 코드는 첫 번째 트리를 시각화한 것입니다. num_trees 매개변수를 조정하여 원하는 트리를 선택할 수 있습니다.

중요도 시각화

또한, xgboost에서는 변수의 상대적 중요도를 시각화하는 plot_importance 함수를 제공합니다.

# 중요도 시각화
xgb.plot_importance(model)
plt.show()

위의 코드는 모델의 변수 중요도를 시각화하는 것입니다. 변수 중요도는 훈련에 얼마나 기여하는지를 나타내는 값입니다.

결론

대화식 시각화는 xgboost 모델을 이해하고 조정하는 데 도움이 됩니다. 트리 시각화와 변수 중요도 시각화를 통해 모델의 동작 및 변수의 영향력을 쉽게 파악할 수 있습니다. 이를 통해 모델의 성능과 해석력을 향상시킬 수 있습니다.

이상으로 xgboost에서의 대화식 시각화에 대해 알아보았습니다. 즐거운 모델 탐색과 분석에 도움이 되길 바랍니다!