반응형
🔍 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)
이렇게 하면 "모델이 왜 이런 예측을 했는지" 시각적으로 분석할 수 있어.
반응형
'통계학 > 데이터분석' 카테고리의 다른 글
Feature Importance vs SHAP (0) | 2025.04.11 |
---|---|
Force Plot(SHAP 설명) (0) | 2025.04.11 |
트리 모델 하이퍼 파라미터 튜닝 (0) | 2025.04.11 |
트리 기반 앙상블 모델 4종 비교(RandomForest, XGBoost, LightGBM, CatBoost) (0) | 2025.04.11 |
RandomForest와 XGBoost (1) | 2025.04.11 |