Open bohyuncho opened 4 years ago
다른 글을 번역해오셨나 생각이 들 정도로, 전체적으로 글의 내용이 산만합니다.
a skipable section
과 같은 부분은 제거가 되야하는건지 아니면 주석인지
읽는 사람들이 헷갈리게 작성되어 있습니다.
고양이 그림들이 중요한 부분이 아닌데 크기가 너무 큽니다.
‘0’은 ‘No’ 이런 부분들도 0
, No
같이 작성 했다면 더 좋을 것 같습니다.
correlation matrix 부분은 짧게 이 내용이 어떤 내용이다 를 언급해주는 것이 좋을 것 같습니다. 조금 더 나아가서, 바로 위에 작성된 코드들보다 더 중요하다고 생각해요.
PDP 부분에서, 위에서는 두 특성간 관계 (work_interfere, supervisor)라고 설명되어있는데 밑에는 2개의 feature와 treatment의 영향을 확인 할 수 있다 라고 설명되어있습니다.
SHAP 부분에서는 차트의 내용이 어떠한 것인지 추가 설명이 있으면 좋을 것 같습니다.
[beginner’s curiosity]
How to explain machine learning?(PDP, SHAP)
왜 가장 중요한 특성이라는 걸까?
모델은 무엇을 근거로 해당 특성이 가장 중요하다 말하는 걸까?
1. PDP(Partial Dependence Plot) 란?
2. SHAP(SHapley Additive exPlanations) 란?
자료를 통해 확인해 보자
오늘 사용해볼 데이터는 'Mental Health in Tech Survey' 데이터이다.
우리는 이 데이터를 통해 " 이전에 치료를 받은 적이 있는지"를 예측 하고자 한다.
여기서 타겟 변수는 “ treatment” 이며, 숫자 ‘1’은 ‘Yes’ / 숫자 ‘0’은 ‘No’
기본 EDA를 통해 target 정보 확인
기본 EDA를 통해 관련 있어보이는 feature를 확인
forest를 활용하여 예측모델 확인
Create a PDP and explain the model
from pdpbox.pdp import pdp_isolate, pdp_plot from pdpbox import pdp import matplotlib.font_manager
work_interfere 대한 PDP
selected_feature = 'work_interfere'
isolated = pdp_isolate( model=model, dataset=X_val_encoded, model_features=X_val_encoded.columns, feature=selected_feature )
pdp_plot(isolated, feature_name=selected_feature);
work_interfere
와supervisor
가 있을 수록treatment
에서 Yes일 가능성이 높음을 확인 할 수 있다.❕ ❔ ❓
‼️ PDP분석은 특성과 타겟변수의 관계를 전체적으로만 파악할 수 있을뿐 개별 관측치에 대한 설명을 하기에는 부족‼️
그래서 PDP는 전역적 (Global) 방법론, 개별 관측치에 대한 방법론인 Shap은 지역적(Local) 방법론이다. 그럼, 개별 관측치에 대한 설명을 위해 Shap 로 시각화를 진행해보자.
Visualize using the SHAP library
True Positive(TP) : 실제 True인 정답을 True라고 예측 (정답)
True Negative(TN) : 실제 False인 정답을 False라고 예측 (정답)
False Positive(FP) : 실제 False인 정답을 True라고 예측 (오답)
False Negative(FN) : 실제 True인 정답을 False라고 예측 (오답)
이렇게 PDP(전역적Global)와 Shap(지역적Local) 의 장점을 이용하여, 큰그림부터 세부적인 그림까지 소환한다면!
우리는 천.하.무.적!
다들 다음 블로그 글에서 뵈요!!!