SHAP 값
SHAP 값
개요
SHAP 값(Shapley Additive exPlanations) 머신러닝 모델의 예측 결과를 해석하기 위한모델 해석성(Interpretability) 기법 중로, 게임 이론의 샤플리 값**(Shapley Value) 개념을 기반으로 합니다. SHAP은 각 특성(feature)이 모델의 개별 예측에 기여한 정도를 정량적으로 평가하여, 복잡한 '블랙박스' 모델(예: 랜덤 포레스트, 그래디언트 부스팅, 딥러닝 등)의 예측을 인간이 이해할 수 있도록 돕는 도구입니다.
특히, SHAP 값은 공정성, 신뢰성, 규제 준수가 중요한 분야(예: 금융, 의료, 보험)에서 모델의 의사결정 과정을 설명하는 데 핵심적인 역할을 합니다.
SHAP의 이론적 기초
샤플리 값(Shapley Value)
SHAP은 1953년 노벨 경제학상 수상자 로이드 샤플리(Lloyd Shapley)가 제안한 게임 이론의 개념인 샤플리 값을 확장한 것입니다. 샤플리 값은 협력 게임에서 각 플레이어가 전체 이익에 기여한 정도를 공정하게 분배하는 방법을 수학적으로 정의합니다.
- 핵심 아이디어: 어떤 플레이어가 다양한 조합의 팀에 합류했을 때, 그로 인해 발생하는 '기대 기여도'의 평균을 계산.
- 이를 머신러닝에 적용하면, 각 특성(feature)이 예측값에 얼마나 기여했는지를 수치화할 수 있음.
SHAP의 수학적 정의
SHAP 값은 다음 조건을 만족하는 유일한 해석 방법으로 정의됩니다:
- 효율성(Efficiency): 모든 특성의 SHAP 값의 합은 모델 예측값과 기준값(base value, 전체 데이터의 평균 예측값)의 차이와 같아야 함.
- 대칭성(Symmetry): 두 특성이 동일한 기여를 한다면, 같은 SHAP 값을 가져야 함.
- 무관한 특성(Dummy): 어떤 특성이 예측에 영향을 주지 않으면, 그 SHAP 값은 0.
- 가법성(Additivity): 두 모델의 예측을 합쳤을 때, 각 특성의 SHAP 값도 개별 SHAP 값의 합이 됨.
이러한 공리적 성질 덕분에 SHAP은 수학적으로 타당하고 일관성 있는 해석을 제공합니다.
SHAP 값의 계산 방식
SHAP 값은 각 특성의 기여도를 계산하기 위해, 해당 특성이 포함된/포함되지 않은 모든 가능한 특성 조합을 고려합니다.
기본 수식
특성 (i)의 SHAP 값 (\phi_i)는 다음과 같이 정의됩니다:
[ \phi_i = \sum_{S \subseteq F \setminus {i}} \frac{|S|!(|F|-|S|-1)!}{|F|!} \left( f(S \cup {i}) - f(S) \right) ]
여기서: - (F): 전체 특성 집합 - (S): 특성 (i)를 제외한 임의의 부분 집합 - (f(S)): 특성 집합 (S)로 계산한 모델 예측값 - (f(S \cup {i}) - f(S)): 특성 (i) 추가로 인한 예측값 변화 (기여도)
이 계산은 조합의 수가 기하급수적으로 증가하므로, 실제 응용에서는 근사 알고리즘을 사용합니다.
주요 SHAP 알고리즘
| 알고리즘 | 설명 | 적용 가능한 모델 |
|---|---|---|
| TreeSHAP | 결정 트리 기반 모델(랜덤 포레스트, XGBoost 등)에 최적화된 효율적인 계산 방법 | 트리 기반 모델 |
| KernelSHAP | 모델에 독립적인 SHAP 값 추정 방법. LIME과 유사하지만 더 엄격한 이론적 기반 | 모든 모델 |
| DeepSHAP | 신경망 모델에 적용되는 SHAP 방법. 딥러닝의 그래디언트 기반 기법과 결합 | 딥러닝 모델 |
| LinearSHAP | 선형 모델에 대해 SHAP 값을 빠르게 계산 | 선형 회귀, 로지스틱 회귀 |
SHAP 값의 해석
SHAP 값은 실수 값으로, 각 특성이 예측에 미친 기여의 방향과 크기를 나타냅니다.
- 양수 값: 해당 특성이 예측값을 증가시켰음을 의미
- 음수 값: 해당 특성이 예측값을 감소시켰음을 의미
- 0 근처: 해당 특성이 예측에 거의 영향을 주지 않음
예를 들어, 고객의 대출 승인 여부를 예측하는 모델에서:
- 소득 특성의 SHAP 값이 +0.3 → 대출 승인 가능성을 높임
- 신용불량 이력의 SHAP 값이 -0.5 → 대출 승인 가능성을 낮춤
기준값(base value)은 전체 데이터의 평균 예측 확률이며, 각 특성의 SHAP 값을 더하면 최종 예측값이 됩니다.
SHAP 시각화 도구
SHAP 라이브러리는 다양한 시각화 방법을 제공하여 해석을 용이하게 합니다.
1. Force Plot
- 개별 예측의 SHAP 값들을 시각화하여, 어떤 특성이 예측을 어떻게 밀고 당겼는지 보여줌.
- 기준값에서 시작하여 각 특성의 기여를 화살표로 표현.
2. Summary Plot
- 전체 데이터셋에서 각 특성의 SHAP 값 분포를 보여줌.
- 중요한 특성과 그 기여 방향(양/음)을 한눈에 파악 가능.
3. Dependence Plot
- 특정 특성과 그 SHAP 값 간의 관계를 시각화.
- 비선형 관계나 상호작용 효과를 탐지하는 데 유용.
4. Waterfall Plot
- 하나의 예측에 대해 SHAP 값이 누적되어 최종 예측에 도달하는 과정을 단계별로 보여줌.
활용 사례
- 의료 진단: 환자의 특정 생체지표가 질병 예측에 얼마나 기여했는지 설명.
- 금융 리스크 평가: 대출 거절 결정에 영향을 미친 요인을 투명하게 제공.
- 고객 이탈 예측: 어떤 요인이 고객 이탈 가능성을 높였는지 분석.
- 규제 준수: GDPR, EEOC 등에서 요구하는 '설명 가능한 AI' 요구사항 충족.
참고 자료 및 관련 문서
- SHAP GitHub 저장소
- Lundberg, S. M., & Lee, S. I. (2017). A Unified Approach to Interpreting Model Predictions. NeurIPS.
- SHAP 공식 문서
SHAP 값은 머신러닝 모델의 '어떻게'보다 '왜'라는 질문에 답할 수 있게 해주는 강력한 도구로, 데이터 과학자와 의사결정자 모두에게 신뢰를 제공하는 데 기여하고 있습니다. 특히, 복잡한 모델의 투명성 확보와 책임 있는 AI 구현을 위한 필수 기술로 자리 잡고 있습니다.
이 문서는 AI 모델(qwen-3-235b-a22b-instruct-2507)에 의해 생성된 콘텐츠입니다.
주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.