본문 바로가기
KT에이블스쿨/에이쁠 기자단

[KT에이쁠 기자단] 10주차 후기(10.10~10.11) - AI모델 해석/평가

by 롱싱싱 2023. 11. 11.

안녕하세요!!

 

벌써 에이블스쿨의 10주차가 지났습니다.

10주차에는 저번에 데이터 분석 강의를 진행해주신 한기영강사님께서 진행하였습니다.

AI모델 해석/평가는 이틀동안 진행되었고 AI모델을 해석하고 평가할 수 있는 방법에 대해 배웠습니다!!


비즈니스를 위한 인공지능

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

1. 모델이 왜 그렇게 예측했나요?

2. 모델은 비즈니스 문제를 해결할 수 있을까요??

 

설명이 필요한 이유?

1. 비즈니스 문제를 해결해야하기 때문

2. 설명이 잘 되는 알고리즘을은 대체적으로 성능이 낮다.

모델 해석 방식

  모델전체 개별데이터
특정모델 - 트리기반 모델(DecisionTree, RandomForest, XGB 등)
변수중요도 : Tree plot
- 선형회귀, 로지스틱회귀
회귀계수 
 
모든모델 - 일반모델의 변수 중요도 PFI
- X에 따른 y예측의 변화  PDP
- X에 따른 y예측의 변화  ICE plot
- SHAP

 

 

트리모델의 변수 중요도

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

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

보스턴 집값 데이터 예측

last가 가장 많이 영향을 미치는 것을 확인할 수 있다.

일반모델의 변수 중요도

PFI

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

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

ICE Plot

개별 행에서 특정 변수의 변화에 따른 예측 값의 변화 시각화

변수의 영향력을 파악하는데 유용함

 

lstat의 변화에 따른 집값 변화

PDP

ICE Plot의 평균선 -> PDP

 

두 변수의 조합으로 분석도 가능

 

shap

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

shap라이브러리 사용

!pip install shap
# SHAP 값으로 모델의 예측 설명하기
explainer1 = shap.TreeExplainer(model1)
shap_values1 = explainer1.shap_values(x_train)

shap.initjs()
shap.force_plot(explainer1.expected_value, shap_values1[0, :], x_train.iloc[0,:])

base value : 전체 평균

20.08: 예측값

빨간 부분 : 상승요인

파란 부분: 하락요인