Interpreting ML Model

제이브로·2022년 1월 5일
0

AI부트캠프

목록 보기
25/32
post-thumbnail

Interpreting ML Model


Applied Predictive Modeling


  • 복잡한 모델 : 이해하기 어렵지만 성능이 좋다.
  • 단순한 모델 : 이해하기 쉽지만 성능이 부족하다.

1. Partial dependence plot

Q . PDP( Partial dependence plot )란?
A . 특성의 값에 따라 타겟값이 증가 / 감소하는지, 어떻게 영향을 미치는지에 대한 정보를 파악하는 그림이다.

  • 부분의존도그림(Partial dependence plots, PDP)
  • 개별 특성과 타겟간의 관계 확인

1.1 PDP ( 1개의 feature )

from pdpbox.pdp import pdp_isolate, pdp_plot

feature = 'annual_inc'

isolated = pdp_isolate(
    model=linear, 
    dataset=X_val, 
    model_features=X_val.columns,
    plot_lines=True, # ICE plots
    feature=feature,
    grid_type='percentile', # default='percentile', or 'equal'
    num_grid_points=10 # default=10
)
pdp_plot(isolated, feature_name=feature);
  • ICE ( Individual Conditional Expectation ) : 한 ICE 곡선은 하나의 관측치에 대해 관심 특성을 변화시킴에 따른 타겟값 변화 곡선이고 이 ICE들의 평균이 PDP이다.

Q . 한 특성에 대해 PDP를 그릴 경우 얼마나 많은 예측이 필요할까요?
A . 데이터셋 사이즈에 grid points를 곱한 수 만큼 예측을 해야한다.

  • grid point를 크게 주면 겹치는 점이 생겨 Number of unique grid points는 grid point 보다 작을 수 있다.

1.2 PDP ( 2개의 feature )

  • 2 특성간의 상호작용 확인
from pdpbox.pdp import pdp_interact, pdp_interact_plot

features = ['annual_inc', 'fico_range_high']

interaction = pdp_interact(
    model=boosting, 
    dataset=X_val_encoded,
    model_features=X_val.columns, 
    features=features
)

pdp_interact_plot(interaction, plot_type='grid', 
                  feature_names=features);


2. SHAP

Q . SHAP이란?
A . 게임이론을 바탕으로 하나의 특성 대한 중요도를 알기위해 여러 특성들의 조합을 구성하고 해당 특성의 유무에 따른 평균적인 변화를 통해 얻어낸 값이 바로 shapley value이다.

  • SHAP = SHapley Additive exPlanations

Q . 게임이론이란?
A . 우리가 아는 게임을 말하는 것이 아닌 여러 주제가 서로 영향을 미치는 상황에서 서로가 어떤 의사결정이나 행동을 하는지에 대해 이론화한 것을 말한다.

row = X_test.iloc[[1]]  # 중첩 brackets을 사용하면 결과물이 DataFrame입니다

# 모델이 이렇게 예측한 이유를 알기 위하여
# SHAP Force Plot을 그려보겠습니다.

import shap

explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(row)

shap.initjs()
shap.force_plot(
    base_value=explainer.expected_value, 
    shap_values=shap_values,
    features=row
)



👉 과정 한눈에 보기

profile
기록하지 않으면 기록되지 않는다.

0개의 댓글