SHAP (SHapley Additive exPlanations)
1) 한 줄 정의 & 직관
- SHAP은 게임이론의 Shapley 값을 이용해, 개별 예측을 “기준값(base value)”에서 각 특징이 얼마나 올렸다/내렸다로 가법(additive) 분해하는 지역(feature attribution) 설명 방법입니다.
- 모든 특징이 “협력 게임”의 플레이어라면, 특징 i의 공정한 기여도가 SHAP 값입니다.
2) 공식 정의(시험용 수식 최소화)
- 특징 수 M, 임의의 부분집합(연합) S⊆{1,…,M}∖{i}.
- 가치 함수 v(S): 해당 부분집합의 특징값을 현재 샘플의 값으로 고정하고, 나머지는 배경분포(Background)로 적분/샘플링해 모델 출력의 기댓값을 계산한 것.
- Shapley 값
ϕi=S∑M!∣S∣!(M−∣S∣−1)!(v(S∪{i})−v(S))
- 가법성(Local accuracy): 링크 g를 쓰면
g(f(x))=ϕ0+i=1∑Mϕi,ϕ0=E[g(f(X))] 분류에서 log-odds(로짓)를 링크로 쓰면 \phi 들의 합이 로짓 공간에서 정확히 맞습니다(확률 공간 합과 다를 수 있음).
3) SHAP이 만족하는 핵심 공리(시험 단골)
- Local accuracy(가법 정확성): 개별 예측을 정확히 분해(링크 공간에서).
- Missingness(결측 불변): 값이 “없는” 특징은 기여 0.
- Consistency(일관성/단조성): 어떤 모델로 바꿨더니 특징 i의 한계기여가 늘었다면 ϕi도 줄지 않습니다. → 이 세 공리를 동시에 만족하는 유일한 가법적 특징 기여 해가 바로 Shapley 값입니다.
4) 알고리즘 계열 & 언제 쓰나
- KernelSHAP (모델 불문, 근사)
- “연합”을 마스크 벡터로 샘플링하고, 특정 가중 커널로 가중최소제곱을 풀어 \phi 추정.
- 장점: 어떤 모델에도 적용. 단점: 고차원에서 느림, 독립성 가정 내포.
- TreeSHAP (트리계열 전용, 정확/준정확)
- 결정트리/랜덤포레스트/GBDT(XGBoost, LightGBM, CatBoost 등)에서 다항시간에 정확 계산(실무적으로 리프 수에 거의 선형).
- Interventional / Conditional 두 모드 제공(아래 6) 참조).
- DeepSHAP (딥러닝 전용, 근사)
- DeepLIFT 아이디어로 SHAP 공리를 가깝게 만족하도록 근사.
- LinearSHAP (선형모델 전용, 폐형식)
- 선형/로지스틱 회귀에 닫힌형 해(상관구조 처리 방식에 따라 변형).
- PartitionSHAP / GroupSHAP
- 특징 그룹화나 특징 간 구조(트리/클러스터)를 반영해 샘플 공간을 효율화.
5) 계산 복잡도 & 스케일링 감각
- 순정 Shapley는 2M 평가가 필요(불가).
- KernelSHAP은 샘플 수를 O(MlogM)∼O(M2) 수준으로 잡아 근사.
- TreeSHAP은 트리 개수×리프 수에 거의 선형이라, 대형 GBDT에도 실무 가능.
6) “배경(Background) 분포”와 상관/인과 이슈 (시험 난이도 상)
- Interventional SHAP: “빠진 특징”을 독립하게 채움(곱분포).
- 쉽고 일관적이나, 강한 상관이 있을 때 비현실적 조합을 만들 수 있음.
- Conditional SHAP: 관측된 특징에 조건부 분포로 채움.
- 상관을 반영하나, 일관성 공리 위배 가능 & 추정이 어려움.
- Causal SHAP: 명시적 인과 그래프를 이용해 개입(do) 정의로 계산(가장 해석적이지만 모델링 부담 큼). 핵심 함정: 강한 다중공선성에서는 “공로 분배”가 본질적으로 임의성을 띱니다(둘 이상이 같이 움직이니 기여가 갈라짐). → 그룹화(GroupSHAP)나 도메인 규칙으로 해석합니다.
7) 해석 포인트 (로컬→글로벌)
- 부호: +면 기준값 대비 출력을 올림, -면 내림.
- 크기: 절대값이 클수록 영향 큼.
- 합: ϕ0+∑iϕi=g(f(x)) (링크 공간).
- 글로벌 중요도: 데이터셋에서 E[∣ϕi∣] (또는 중앙값)로 정렬.
- 상호작용: Shapley interaction index로 2차 기여 ϕi,j 산출(쌍 간 상호작용 분해).
- 시각화: Summary plot(벌집), Dependence plot(부분의존+색으로 상호작용 힌트), Force/Decision plot(개별 사례 분해).
8) LIME / IG / Permutation 등과 비교 (시험 즐겨 내는 지문)
- SHAP vs LIME
- 둘 다 로컬 선형 근사 틀을 쓰지만, SHAP 커널은 Shapley 공리를 만족하는 유일한 가중체계.
- LIME은 안정성/유일성 보장이 약하고, 표본/커널 선택에 민감.
- SHAP vs Integrated Gradients(IG)
- IG는 경로적분(기울기 누적), 미분가능 모델에 적합, 기저(참조)점 의존.
- SHAP은 모델 불문, 가법 공리 만족, 비미분 모델(트리)에도 적용.
- SHAP vs Permutation Importance
- Permutation은 전역, 모델/데이터 의존 중요도(성능 저하량).
- SHAP은 개별 예측 단위의 지역 설명, 합치면 전역 통계 가능.
- SHAP vs PDP/ALE
- PDP/ALE는 전역 효과 곡선, SHAP은 사례별 기여가 1차 목적.
9) 모델별 실무 팁
- 트리 모델: TreeSHAP 사용(가능하면 interventional로 시작, 상관 강하면 conditional 검토).
- 딥러닝: DeepSHAP(분류는 log-odds 링크 확인), 배경 샘플은 소수의 대표 샘플(예: k-means) 추천.
- 선형모델: LinearSHAP; 상관구조 반영 옵션 확인.
- 고차원 희소 피처: Feature grouping/selection 후 SHAP(메모리·시간 절감).
- NLP/이미지: 배경을 PAD/블러 이미지 등 자연스러운 기준으로(0 벡터는 왜곡 유발).
10) 자주 틀리는 보기(OX 체크 포인트)
- (O) SHAP 값의 합은 ‘기준값 대비 변화량’과 일치한다(링크 공간에서).
- (O) SHAP은 음/양수 모두 가능하며, 로컬 설명이 1차 목표다.
- (O) 세 공리(Local accuracy, Missingness, Consistency)를 만족하는 가법적 기여 해는 유일하다.
- (X) “SHAP은 확률 공간에서 항상 합이 맞는다.” → 보통 로짓에서 합이 맞습니다. 확률 합은 비선형이라 어긋날 수 있음.
- (X) “SHAP은 상관 특징에서도 유일한 정답을 준다.” → 공로 분배는 비식별적일 수 있으며 그룹화/조건부/인과 접근이 필요.
- (O) KernelSHAP은 모델 불문이지만 근사/느림. TreeSHAP은 트리 전용이지만 빠르고(거의 선형) 정확.
- (O) 배경 샘플 선택에 따라 ϕ가 크게 달라질 수 있다(중요한 실무 함정).
- (X) “SHAP은 전역 중요도 기법이다.” → 로컬이 기본, 다수 샘플을 집계해 전역을 만든다.
- (O) SHAP 상호작용 값으로 2차 효과를 분해할 수 있다.
- (O) 선형모델에서(상호작용/상관 없다고 가정) ϕi는 대략 계수×(특징값−배경평균) 형태로 해석 가능.
11) 실전 체크리스트(보고서·시험 공통)
- 링크 공간 명시: probability vs log-odds.
- 배경 선택 근거: 전체 학습세트? 서브샘플? 도메인 합의?
- 상관 고려: interventional/conditional/causal 선택 이유 기록.
- 안정성: 샘플 수/랜덤시드, 재현성 표기.
- 전역 요약: mean(|φ|)만 보지 말고 분포/상호작용까지 확인.
- 정량 검증: sanity check(무작위 라벨/모델에서 ϕ가 무의미한지), 시나리오 테스트(경계 사례).
12) 짧은 예시 해석(개념 감각)
- 이진분류, 기준 로짓 ϕ0=−0.4 (기준확률≈0.40)
- 한 샘플에서 ϕage=+0.9,ϕincome=−0.2,ϕothers=+0.1
- 합: −0.4+0.9−0.2+0.1 = +0.4 (로짓). 확률로 역변환하면 기준 0.40에서 상승(정확한 증감폭은 비선형).