SHAP 분석이 뭐길래?
최근 2025 원티드 하이파이브 컨퍼런스에 다녀왔습니다. 컨퍼런스 내용 중 여러 기업들이 SHAP 분석을 활용해 중요 피처를 발굴하고 그걸 핵심 지표로 정의하는 사례들을 다수 소개했습니다.
그만큼 SHAP은 단순한 설명 도구를 넘어서 모델 해석 → 전략 수립 → 실제 액션 도출까지 이어지는 실용적인 도구가 되고 있다는 걸 세션을 들으며 느꼈습니다.
이번 글에서는 SHAP 분석이 무엇인지, 어떻게 해석해야 하는지, 제가 있는 교육 서비스에서 실제로 어떻게 활용할 수 있는지를 구체적인 예시와 함께 정리해 보았습니다.
SHAP이란?
- SHAP (SHapley Additive exPlanations)은 머신러닝 모델의 개별 예측값을 설명하기 위한 도구
- 게임 이론에서 유래된 Shapley 값을 기반으로, 각 특성이 예측값에 얼마나 기여했는지를 정량적으로 계산
- 즉, 모델이 어떤 판단을 내렸는지를 ‘해석 가능하게’ 만드는 XAI(Explainable AI) 기법 중 하나
핵심 개념 정리
- Additive Feature Attribution : 예측값 = 기준값 + (각 피처의 기여도 합계)
- Local Explanation : 전체 모델이 아니라 개별 예측값에 대한 설명이 가능
- Consistency : 피처의 영향력이 커질수록 SHAP 값도 커져야 함
사용 방법
파이썬에서 아주 쉽게 사용 가능합니다. 모델을 학습한 뒤 Explainer 객체에 데이터를 넣으면 각 피처별 SHAP 값을 얻을 수 있고 다양한 플롯으로 시각화도 가능합니다
import shap
explainer = shap.Explainer(model)
shap_values = explainer(X)
shap.plots.waterfall(shap_values[0])
주의사항
제가 초반에 가장 헷갈렸던 부분은 SHAP도 모델이라고 생각했었던 것인데요
⚠️ SHAP은 모델이 아닙니다 이미 학습된 모델을 해석하는 프레임워크입니다
SHAP vs 로지스틱 회귀
SHAP이 마치 로지스틱 회귀의 업그레이드처럼 보일 수 있지만 둘은 서로 다른 역할을 합니다.
구분 | 로지스틱 회귀 | SHAP |
역할 | 예측 모델 | 모델 해석 도구 |
출력 | 전체 피처의 계수 (일반적 경향) | 개별 예측값에 대한 피처별 기여도 |
대상 | 선형 모델 중심 | 어떤 모델이든 가능 (트리, NN 등 포함) |
예시로 보는 차이
- 로지스틱 회귀 결과 :
- age 변수의 계수 = +0.3 → 나이가 많을수록 수료 확률 증가
- SHAP 결과 (개별 수강생 A) :
- age SHAP 값 = +0.12 → 이 수강생의 수료 예측값 중 0.12는 나이 덕분
로지스틱 회귀는 전체적인 경향을 SHAP은 개별 케이스에서의 정량적 해석을 제공합니다.
결국 어떤 것을 활용할까를 보면 전체적인 경향을 봐야하는 경우와 개별 케이스를 봐야하는 경우를 나눠서 생각해야합니다.
예시 : 부트캠프 수료 예측 모델
예측 목적
- 수강생이 과정을 수료할 가능성 예측
- 결국 데이터 분석가는 주변 사람들에게 설명하는 것도 중요하기 때문에 단순히 예측 정확도뿐 아니라 왜 그런 결과가 나왔는지 해석하는 것이 핵심입니다
주요 입력 피처
Feature | 설명 |
age | 수강생 나이 |
pre_test_score | 사전 테스트 점수 |
attendance_rate | 출석률 |
project_score | 중간 프로젝트 점수 |
slack_activity | 슬랙 활동 빈도 |
feedback_sentiment | 수업 피드백 감성 점수 |
study_hours | 하루 평균 공부 시간 |
로지스틱 회귀의 한계
- 회귀 계수 예시:
- attendance_rate: +2.5
- project_score: +1.2
- age: -0.7
→ 전체적으로 출석률이 수료에 긍정적, 나이는 부정적 영향을 준다는 일반적인 경향은 파악 가능
하지만 개별 수강생에게 어떤 피처가 실제로 영향을 미쳤는지는 알기 어렵습니다.
SHAP으로 분석하면?
📢 이 그래프 하나로 어떤 인사이트를 얻을 수 있을까요? 📢
SHAP Summary Plot을 보면 각 피처의 SHAP 값 분포와 해당 값(색상)의 영향력을 한눈에 볼 수 있습니다.
1. X축: SHAP Value
- SHAP 값 > 0 : 해당 특성이 수료 확률을 높이는 방향으로 작용
- SHAP 값 < 0 : 해당 특성이 수료 확률을 낮추는 방향으로 작용
2. Y축: Feature
- 모델이 중요하다고 판단한 순서대로 위에서 아래로 나열 (가장 중요한 특성이 위에 위치)
3. 색상: Feature Value
- 빨간색: 해당 특성의 값이 높음
- 파란색: 해당 특성의 값이 낮음
- 색과 SHAP 값의 방향을 같이 봐야 해석이 가능
해석 요약
피처 | SHAP 해석 |
Attendance | 출석률이 높을수록 수료 확률이 명확하게 증가하며, 가장 중요한 특성 |
Study Hours | 학습 시간이 많을수록 수료 가능성이 높음 |
Project Score | 프로젝트 점수 역시 수료에 긍정적 영향 |
Pre-test Score | 사전 지식도 도움은 되지만 영향은 상대적으로 적음 |
Feedback Sentiment | 영향력이 낮지만, 일부 긍정적인 피드백이 수료 확률을 높이는 데 도움이 될 수 있음 |
Age | SHAP 분포도 작고 일관된 경향도 없음, 수료 예측에 주요 요소는 아님 |
실무 적용 예시
SHAP 분석 적용 방안 :
이탈 조기 경고 | SHAP으로 이탈 위험 예측 → "슬랙 활동이 적고 프로젝트 점수가 낮은 수강생" 식의 조기 케어 가능 ex. 📢 [수강생 A] 슬랙 활동이 매우 적고, 프로젝트 점수도 낮습니다. 조기 이탈 가능성이 높습니다. |
맞춤 피드백 | 개별 수강생에게 "출석률이 낮아서 수료 가능성이 떨어졌어요" 등 설명형 피드백 제공 |
교육 설계 개선 | 여러 SHAP 분석 결과를 바탕으로 수료율에 큰 영향을 준 요소 중심으로 커리큘럼/운영 전략 조정 |
마케팅 타깃 정의 | 수료 확률이 높은 지원자 특성을 시각화하여 이상적인 타깃 페르소나 정의 가능 |
마무리: SHAP이 주는 인사이트는 단순한 해석을 넘는다
- 로지스틱 회귀는 전체적인 “경향”을 파악하는 데 강점이 있다면
- SHAP은 “왜 이 수강생이 이런 결과를 가졌는가”를 명확히 보여줍니다
특히 부트캠프처럼 학습자 개인의 행동 데이터와 맞춤 전략이 중요한 환경에서는 SHAP은 단순한 설명 도구가 아니라 기획, 운영, 마케팅 전략 수립의 핵심 도구가 될 수 있습니다
'Dev > 데이터 분석' 카테고리의 다른 글
데이터 분석가라면 필수! 상관관계 인과관계 특징과 예시 (2) | 2024.12.09 |
---|---|
[분석] 인과추론(3) - 행동 데이터 분석 (0) | 2024.03.07 |
[분석] 인과추론(2) - 행동 데이터 분석 (1) | 2024.02.28 |
[분석] 인과추론(1) - 행동 데이터 분석 (1) | 2024.02.23 |
[지표] 임팩트 있는 문제를 정의하려면? (2) | 2023.09.30 |