본문 바로가기

통계학/데이터분석

shap조합

반응형

🔍 SHAP이란?

SHAP (SHapley Additive exPlanations)
→ 복잡한 모델의 예측을 개별 피처(변수)가 얼마나 영향을 미쳤는지를 설명해주는 해석 가능한 AI 도구야.

수학적으로는 게임이론의 Shapley 값을 기반으로 해서,

"이 피처가 모델의 최종 예측에 얼마나 기여했나?"
공정하게 나눠서 계산해줘.


🧠 왜 SHAP + XGBoost 조합이 좋을까?

XGBoost나 LightGBM 같은 Boosting 모델은 기본적으로 블랙박스 모델이라,
단순히 결과만 보면 "왜 이런 예측이 나왔는지" 알기 어려움 😵

하지만 SHAP을 함께 쓰면:

  • 어떤 피처가 예측에 긍정적으로 작용했는지,
  • 어떤 피처가 예측값을 낮췄는지
    → 직관적 그래프로 시각화 가능!

📊 예시 그래프

  • Summary Plot:
    전체 피처 중 어떤 게 중요한지, 영향 방향은 어떤지 한눈에 보여줌
  • Force Plot:
    개별 샘플 예측을 설명하는 시각화 (이 값이 왜 나왔는지)
  • Dependence Plot:
    특정 피처 값이 어떻게 예측에 영향을 미치는지 보여줌

💡 예시 코드 (XGBoost + SHAP)

import shap
import xgboost as xgb

model = xgb.XGBClassifier().fit(X_train, y_train)

explainer = shap.Explainer(model)
shap_values = explainer(X_test)

# Summary plot
shap.summary_plot(shap_values, X_test)

이렇게 하면 "모델이 왜 이런 예측을 했는지" 시각적으로 분석할 수 있어.

반응형