[파이썬] catboost 시각화를 이용한 피처 중요도 확인

Catboost는 강력한 기계 학습 알고리즘으로 알려져 있습니다. 그리고 피처 중요도를 확인하여 모델의 예측 능력을 평가하는 것은 모델 해석과 개선에 중요한 부분입니다. 이번 블로그에서는 Catboost를 사용하여 피처 중요도를 시각화하는 방법을 알아보겠습니다.

Catboost란?

Catboost는 그래디언트 부스팅을 기반으로 한 기계 학습 알고리즘입니다. 특히 범주형 변수를 처리하는 데 탁월한 성능을 보이며, 나무 구조를 사용하여 앙상블을 만듭니다. Catboost는 예측 정확도가 높고 학습 속도가 빠른 특징을 가지고 있습니다.

피처 중요도 시각화 방법

Catboost는 모델 훈련 후 각 피처의 중요도를 계산할 수 있습니다. 이를 시각적으로 확인하여 각 피처의 영향력을 파악할 수 있습니다. 다음은 Catboost를 사용하여 피처 중요도를 시각화하기 위한 예제 코드입니다.

import catboost
import matplotlib.pyplot as plt

# 데이터 준비
X, y = load_data() # 데이터 로드
cat_features = [2, 5, 7] # 범주형 변수 인덱스

# Catboost 모델 학습
model = catboost.CatBoostRegressor()
model.fit(X, y, cat_features=cat_features)

# 피처 중요도 계산
feature_importance = model.get_feature_importance()

# 중요도를 내림차순으로 정렬
sorted_indices = feature_importance.argsort()[::-1]

# 피처 중요도 시각화
plt.figure(figsize=(10, 6))
plt.bar(range(len(feature_importance)), feature_importance[sorted_indices])
plt.xticks(range(len(feature_importance)), sorted_indices)
plt.xlabel('Feature Index')
plt.ylabel('Importance')
plt.title('Feature Importance')
plt.show()

위 코드에서는 Catboost를 사용하여 모델을 학습하고, get_feature_importance 메소드를 사용하여 피처 중요도를 계산합니다. 결과를 시각화하기 위해 matplotlib 라이브러리를 사용하여 막대 그래프를 생성합니다.

시각화 결과

위 코드를 실행하면 피처 중요도를 시각화한 막대 그래프가 표시됩니다. 중요도가 높은 피처일수록 막대의 높이가 더 큽니다. 이를 통해 각 피처의 상대적인 중요도를 비교할 수 있습니다.

결론

Catboost를 사용하여 모델의 피처 중요도를 시각화하는 방법에 대해 알아보았습니다. 중요한 피처를 파악하여 모델을 개선하고, 더 나은 결과를 얻을 수 있습니다. Catboost는 피처 중요도 계산 및 시각화에 탁월한 기능을 제공하므로 데이터 과학자들에게 매우 유용한 도구입니다.