[파이썬] lightgbm 피처 상호 작용 및 해석

LightGBM은 그래디언트 부스팅 트리 알고리즘의 한 종류로, 빠른 속도와 높은 정확도로 유명합니다. 그러나 모델의 예측 결과를 해석하고 피처 간의 상호 작용을 이해하는 것은 어려운 과제일 수 있습니다.

이 블로그 포스트에서는 LightGBM 모델의 피처 상호 작용을 확인하고, 모델의 예측 결과를 해석하는 방법을 알아보겠습니다.

1. 피처 상호 작용 확인하기

LightGBM은 plot_interactions 메서드를 통해 피처 간의 상호 작용을 시각화할 수 있는 기능을 제공합니다. 이를 통해 피처 중요도에 기초한 상호 작용 패턴을 확인할 수 있습니다.

예를 들어, 다음과 같이 plot_interactions 메서드를 사용하여 상호 작용을 시각화할 수 있습니다:

import lightgbm as lgb
import matplotlib.pyplot as plt

# LightGBM 모델 학습
model = lgb.LGBMRegressor()
model.fit(X_train, y_train)

# 피처 상호 작용 시각화
lgb.plot_interactions(model, figsize=(10, 6))
plt.show()

2. 피처 중요도 확인하기

피처 중요도를 확인하여 모델이 예측에 어떤 피처를 주로 활용하는지 알 수 있습니다. LightGBM은 plot_importance 메서드를 통해 각 피처의 상대적 중요도를 시각화할 수 있는 기능을 제공합니다.

다음 예제 코드를 통해 피처 중요도를 확인할 수 있습니다:

import lightgbm as lgb
import matplotlib.pyplot as plt

# LightGBM 모델 학습
model = lgb.LGBMRegressor()
model.fit(X_train, y_train)

# 피처 중요도 시각화
lgb.plot_importance(model, figsize=(10, 6))
plt.show()

3. SHAP 기반 피처 중요도 확인하기

SHAP(SHapley Additive exPlanations)은 모델의 해석력을 높여주는 기술로, 각 피처가 예측 결과에 얼마나 기여하는지 확인할 수 있습니다. LightGBM은 plot_importance 메서드를 통해 SHAP 기반의 피처 중요도를 시각화할 수 있는 기능을 제공합니다.

다음 예제 코드를 통해 SHAP 기반의 피처 중요도를 확인할 수 있습니다:

import lightgbm as lgb
import shap

# LightGBM 모델 학습
model = lgb.LGBMRegressor()
model.fit(X_train, y_train)

# SHAP 기반 피처 중요도 계산
explainer = shap.Explainer(model)
shap_values = explainer(X_test)

# SHAP 기반 피처 중요도 시각화
shap.summary_plot(shap_values, X_test, plot_type='bar')

LightGBM을 사용하여 피처 상호 작용을 확인하고 모델의 예측 결과를 해석하는 방법에 대해 알아보았습니다. 상호 작용과 피처 중요도를 확인함으로써 모델의 동작 원리를 이해할 수 있으며, 그에 따라 모델을 개선하거나 해석할 수 있는 통찰력을 얻을 수 있습니다.