AI

SHAP이란?

마시멜로를찾아서 2025. 3. 27. 17:42
반응형

SHAP은 머신러닝 모델이 왜 그런 예측을 했는지 설명해주는 도구예요.
특히 XGBoost나 LightGBM 같은 블랙박스 모델의 예측 결과를 해석할 수 있게 해줘요.


🧠 SHAP이란?

🔍 SHAP = SHapley Additive exPlanations

  • 원래는 게임 이론의 Shapley 값에서 나온 개념이에요.
  • "각 피처가 예측값에 얼마나 기여했는가?"를 계산합니다.
  • 예:
    모델이 전표 A를 "반려 확률 90%"로 예측했다면:
    • 적요: +40%
    • 금액: +20%
    • 계정코드: +30%
    • → 이런 식으로 기여도를 보여줘요.

📊 어떻게 생겼냐면?

예시 그래프:

예측: 반려 확률 90%
-------------------------
적요             +0.40
계정코드         +0.30
금액             +0.20
거래처           +0.05
부서             -0.05
-------------------------
기본값 (평균)    0.50 → 최종 0.90

이렇게 어떤 피처가 얼마나 영향을 줬는지 직관적으로 보여줍니다.


💡 왜 유용하냐?

  • 검인/반려 예측 모델의 신뢰성 확보
    • 사람이 "왜 이건 반려되었지?" 하고 물어볼 때 → SHAP이 설명해줌
  • 피처 엔지니어링 방향 제시
    • 어떤 컬럼이 영향을 많이 주는지 알 수 있음
  • 규칙 기반 추천에도 도움
    • "이 적요는 전산팀에서 자주 반려함" → SHAP이 그걸 보여줌

✅ SHAP과 XGBoost는 궁합이 좋다

XGBoost는 tree 기반 모델이라서 SHAP 값 계산이 매우 빠르고 정확합니다.
코드도 심플해요:

import shap
explainer = shap.Explainer(model)
shap_values = explainer(X)
shap.plots.waterfall(shap_values[0])
반응형