Python/공부

[ML] SHAP 분석 - 어떤 변수가 중요한가?

maango97 2025. 1. 18. 23:55

SHAP 분석이란?

SHAP 분석은 머신러닝 모델의 예측 결과를 해석 가능하게 만드는 데 사용되는 방법으로 게임 이론의 Shapley 값을 기반으로, 각 특성(feature)이 예측 결과에 기여한 정도를 계산한다. 한마디로, 특정 모델에서 어떤 변수가 중요한지를 알려준다.

 

 

SHAP은 모델의 종류(예: 랜덤 포레스트, XGBoost, 신경망 등)에 상관없이 사용할 수 있고 모델 내부 구조를 모르더라도 모델의 출력값만으로도 SHAP 값을 계산할 수 있다(블랙박스 모델도 가능).

 

 

해석 방법

나의 경우에는 신경망을 이용한 분류 모델(ANN)의 변수 중요도를 알기 위해 SHAP 분석을 이용했다.

 

아래는 Kaggle의 IBM HR Analytics Employee Attrition & Performance 데이터셋의 변수 중요도를 SHAP 분석한 것이다.

데이터 출처 : https://www.kaggle.com/datasets/pavansubhasht/ibm-hr-analytics-attrition-dataset

 

IBM HR Analytics Employee Attrition & Performance

Predict attrition of your valuable employees

www.kaggle.com

 

 

 

상단에 위치한 변수일수록 Feature Value가 높은 변수(더 중요한 변수)이다. 가로축은 SHAP 값을 나타내며 는 해당 변수가 예측값에 미치는 영향을 의미한다.

 

SHAP 값이 양수(오른쪽)일 경우, 해당 특성이 퇴사 가능성을 높이는 방향으로 작용하고, 음수(왼쪽)일 경우 퇴사 가능성을 낮추는 방향으로 작용함을 뜻한다.

 

빨간색 점해당 변수의 값이 높을수록 퇴사 가능성에 더 큰 영향을 준다는 것을, 파란색 점값이 낮을수록 영향을 준다는 것을 의미한다.

 

<해석 예시>

 

 

OverTime(초과근무)이 많을수록 SHAP 값이 오른쪽으로 치우쳐 있어 퇴사 가능성을 높이는 데 중요한 역할을 한다는 것을 알 수 있지만 반대로, RelationshipSatisfaction(인간관계 만족도)의 경우는 그 값이 낮을수록 퇴사 가능성이 높아질 수 있다고 해석된다.

 

 

활용 사례

 

이처럼 특정 변수가 어떠한 방향으로 중요한지 알아낼 수 있으니 SHAP 분석은 비즈니스 의사 결정을 내리는 데에 효과적이다. 

 

이탈 고객 분석(특정 고객이 이탈할 가능성이 높은지 모델을 통해 예측)이나 그 외에도 마케팅 캠페인 효과 분석(어떤 변수가 고객 행동에 큰 영향을 미쳤는지), 공급망 최적화(수요에 큰 영향을 미치는 변수를 파악)에도 활용될 수 있다.