Partial Dependence Plots(PDP)
- 높은 성능의 Modeling을 위해 RandomForest, Boosting과 같은 Ensemble model을 주로 사용하게 된다.
- 이런 복잡도가 높은 Model은 Linear model에 비해 해석하기 어렵다.
- Complex model : 이해하기 어렵지만 성능이 좋다.
- Simple model : 이해하기 쉽지만 성능이 아쉽다.
- 예로 RandomForest, Boosting의 경우 쉽게 Feature importance 값을 얻을 수 있는데, 이를 통해서 알 수 있는 것은 어떤 특성들이 Model의 성능에 중요하다, 많이 쓰인다 정도다.
- 특성의 값에 따라 Target 값이 증가/감소하느냐와 같은 어떻게 영향을 미치는지에 대한 정보는 알 수 없다.
- PDP(Partal dependence plot, 부분의존도그림)를 사용하면 특성들이 타겟에 어떻게 영향을 주는지 파악할 수 있다.
1 |
|
1 |
|
한 특성 사용
- 선형모델은 회귀계수를 이용해 변수와 타겟 사이의 관계를 해석할 수 있지만 트리모델은 할 수 없다.
- 대신 PDP를 사용해 개별 특성과 타겟 간의 관계를 볼 수 있다.
1 |
|
1 |
|
1 |
|
10개의 ICE(Individual Conditional Expectation) curves
- 한 ICE 곡선은 하나의 관측치에 대해 관심 특성을 변화시킴에 따른 타겟값 변화 곡선이고 이 ICE의 평균이 PDP이다.
1 |
|
1 |
|
- ICE curves -> PDP를 표현하는 GIF(Christoph Molnar)
- 한 특성에 대해 PDP를 그릴 경우 데이터셋 사이즈에 grid points를 곱한 수만큼 예측해야한다.
1 |
|
두 특성 사용
(참고: PDPBox version <= 0.20 과 몇몇 matplotlib 버전에서 pdp_interact_plot
에서plot_type='contour'
설정시 에러가 발생할 수 있다.
TypeError: clabel() got an unexpected keyword argument 'contour_label_fontsize'
https://github.com/SauceCat/PDPbox/issues/40)
—
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
PDP Categiry 특성 사용
- 카테고리 특성을 학습할 때 Ordina Encoder, Target Encoder 등의 인코더를 사용한다
- Encoding을 하면 학습 후 PDP를 그릴 때 Encoding된 값이 나오게 되어 카테고리 특성의 실제값을 확인하기 어렵다.
PDP에 Encoding되기 전 Category 값을 보여주기 위한 방법
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
SHAP
- 어떤 ML Model이든 단일 관측치로부터 특성들의 기여도(Feature attribution)를 계산하기 위한 방법이다.
- Shapley valu는 원래 게임이론에서 나온 개념이지만 복잡한 ML model의 예측을 설명하기 위한 유용한 방법이다.
1 |
|
Shapley values
- 게임이론에서 같은 팀 선수들(특성들)이 게임 목표(예측) 달성을 위해 각자 자신의 역할(기여)을 한다고 할 때 게임 목표 달성 후 받은 포상을 어떻게 하면 그들의 기여도에 따라 공평하게 나누어 줄 수 있을 것인가? 라는 질문과 연관된다.
- Shapley value를 ML의 특성 기여도산정에 활용
- 특성 갯수가 많아질 수록 Shapley value를 구할 때 필요한 계산량이 기하급수적으로 늘어난다.
- SHAP에서는 샘플링을 이용해 근사적으로 값을 구합니다
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
SHAP value 분류 문제에 적용
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
Feature Importances, PDP, SHAP의 특징 구분
- 서로 관련이 있는 모든 특성들에 대한 전역적인(Global) 설명
- Feature Importances
- Drop-Column Importances
- Permutaton Importances
- 타겟과 관련이 있는 개별 특성들에 대한 전역적인 설명
- Partial Dependence plots
- 개별 관측치에 대한 지역적인(local) 설명
- Shapley Values