AIVLE

AI모델 해석

민주82 2023. 3. 9. 14:43

 

 

우리가  '무엇을 보는 것'이 아니라, '무엇을 무엇으로 본다는 것'이다.

우리의 인식은 일종의 해석이다.

 

 

-토마스쿤-

 

 


 

 

정수기 렌탈 비정상 계약 예측

비정상 계약으로 손실이 큼 →  고객정보와 과거 패턴 분석 후 예측 모델 만듦

 

수요량 예측

매장에서의 발주 정확도를 높이기 위해 →  6개 매장 200개 상품의 일별 수요량을 예측하는 알고리즘 개발

 

 

 

고객이 AI전문가에게 던지는 질문

  1. 모델이 왜 그렇게 예측을 했는지?
  2. 모델은 비즈니스 문제를 해결할 수 있는지?

 

인공지능이 예측한 결과에 대해서 사람들은 무엇을 어디까지 신뢰할까?

 

 

Interpretability(해석) vs. Explainability(설명)

 

 

Interpretability(해석)

Input에 대해 모델 왜 그런 Output을 예측했는가?

Whitebox model : 본질적으로 해석 가능

 

 

Explainability(설명)

Interpretability + 투명성에 대한 요구

 

White box model

: 간단한 매커니즘

Black box model

: 복잡한 매커니즘

 

 

설명이 잘되는 알고리즘은 대체로 성능이 낮음

→ Decision Tree, Linear Regression....

 

 

 

모델에 대한 설명

전체 데이터 모델 전체에서 어떤 feature가 중요할까? Feature Importance
특정 feature 값의 변화에 따라 예측값은 어떻게 달라질까? Partial Dependence Plot
개별 데이터 이 데이터는 왜 그러한 결과로 예측되었을까? Sharpley Addictive Explanation

 

 

 

변수 중요도

: 알고리즘 별 내부 규칙에 의해, 예측에 대한 변수 별 영향도 측정 값

  성능이 낮은 모델에서의 변수 중요도는 의미 없음

 

 

 

모델에서 Feature Importance를 제공하는 알고리즘

 

: Tree기반

  1. Decision Tree
  2. Random Forest
  3. XGB

 

(1) Feature Importance : Decision Tree

 

Mean Decrease Impurity(MDI)

  • Information Gain : 지니 불순도가 감소하는 정도
  • Tree 전체에 대해서, feature별로 Information Gain의 (가중) 평균을 계산

 

(2) Feature Importance : Random Forest

 

Mean Decrease GINI

  • 개별 트리의 MDI로부터, feature 별 Importance 평균 계산

 

(3) Feature Importance : XGB

 

변수중요도를 계산하는 3가지 방법

 

weight

  • 모델 전체에서 해당 feature가 split될 때 사용된 횟수의 합
  • plot_importance 에서의 기본값

 

gain

  • feature별 평균 information gain
  • model.feature_importances_ 의 기본값
  • total_gain : feature별 information gain의 총 합

 

cover

  • feature가 split 할 때 샘플 수의 평균
  • total_cover : 샘플수의 총 합

 

 

 

Permutation Feature Importance (PFI) 

 

: 알고리즘과 상관 없이 변수 중요도를 파악할 수 있는 방법

  → Feature 하나의 데이터를 무작위로 섞을 때, model의 score가 얼마나 감소되는 지로 계산

공정, 정확성을 위해 특정 Feature j에 대해서, 여러 번(K) 시도(섞고, Score계산)해서 나온 Score의 평균 계산

 

 

단점 : 만약 다중 공선성이 있는 변수가 존재할 때, 특정 변수 하나가 섞이면 관련된 변수는 그대로 있으므로 Score가 별로 줄어들지 않을 수 있음

 

 

Partial Dependence Plots (PDP)

: 관심 feature의 값이 변할 때, 모델에 미치는 영향을 시각화

ex) 데이터셋이 3건, rm 값의 종류가 6.216, 8.259, 8.704 세가지라면, 데이터셋의 rm 값을 모두 6.216 로 바꾼 후 예측 값들을 뽑아 평균 계산.

 

 

 

 

모델의 정확도가 높다고 평가되었지만. 모델이 타겟값을 예측하는데 중요한 요인은 무엇이었을까?

타겟 예측값에 대한 근거를 좀 줘바...!

 

 

 

Shapley value

: 모든 가능한 조합에서, 하나의 feature에 대한 평균 기여도를 계산한 값

  예측 값과 전체 평균과의 차이에 각 feature가 얼마나 기여했는지 계산한 값

 

 

알고 싶은 변수를 포함했을 때와 안했을 때의 예측값의 차이를 구한후, 가중치를 곱해 각 조합의 기여도를 합침

가중치 : 조합에 포함된 변수의 수를 감안한 값

 

 

모델을 생성한 후 생성된 모델로 Explainer를 만들고 특정 데이터셋에 대해 Shapley value 추출

→ x_train과 Shapley value의 크기가 동일 (당연한 것.. x_train으로 기여도를 계산한 것이니)

 

 

 

전체 평균을 중심으로 예측된 값에 어떠한 영향을 주었는지 변수 별 확인 가능

:  상승요인과 하락요인

 

 

 

 

Decision Tree

디폴트로 모델을 만들면

분류모델은 리프노드를 나눌 수 있을만큼 나눔, 복잡하게

회귀모델은 혼자 남을 때 까지

 

 

'GridSearchCV' object has no attribute 'feature_importances_'

 

model_gs안에 50개의 모델이 있어서..

model_gs.best_esimator_.feature_importance_

 

 

RandomForestRegressor

변수 중요도를 확인할때 평균을 보여줌

 

모델이 예측을 함 - lst, rm을 중요하게 봄 (예측값 기반!! 실제 값 기반이 아님)

실제 집값에 영향을 가장 많이 주는게 LST, RM이다 -- 좀 다른 말..

 

 

섞었을 때 변화가 없다 = 어차피 영향이 없던거다

변화가 크다 = 성능에 영향이 갈정도로 중요하다 

 

 

 

PFI X끼리 강한 상관관계, 다중공선성이 존재한다면 

score가별로 줄지 않음

'AIVLE' 카테고리의 다른 글

언어지능  (0) 2023.04.13
시각지능 딥러닝  (0) 2023.03.20
딥러닝  (0) 2023.03.05
머신 러닝  (1) 2023.02.28
Web Crwaling ⑥ - selenium  (0) 2023.02.21