본문 바로가기

KT AIVLE SCHOOL

[10,11주차] AI모델 해석/평가 + 4차 미니프로젝트

목차

1. AI모델 해석/평가

2. 4차 미니프로젝트

 

 

1. AI모델 해석/평가

이번 과정은 비즈니스적 측면에서 AI엔지니어가 고객에게 모델을 해석 및 평가 내용을 설명하기 위한 지표 또는 방법을 배우는 과정이다.

Feature Importance (변수중요도)

알고리즘 별 내부 규칙에 의해, 예측에 대한 변수 별 영향도 측정값이지만 중요한건 성능이 낮은 모델에서의 변수중요도는 의미없다는걸 명심해야 한다.

1-1. 트리기반 모델 변수중요도

MDI - Mean Decrease Impurity (Decision Tree에서의 변수중요도)

Tree전체에 대해서, feature별로 Information Gain의 (가중) 평균을 계산

Information Gain : 지니 불순도가 감소하는 정도

Mean Decrease GINI (Random Forest에서의 변수중요도)

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

XGB에서 변수중요도를 계산하는 3가지

1) weight

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

plot_importance에서의 기본값

2) gain

feature별 평균 information gain

model.feature_importances_ 의 기본값

total_gain : feature별 information gain의 총합

3) cover

feature가 split할 때 샘플 수의 평균

total_cover : 샘플수의 총합

 

1-2. 일반 모델 변수 중요도

PFI - Permutation Feature Importance

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

Permutation(순열) : 순서가 부여된 임의의 집합을 다른 순서로 뒤섞는 연산

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

permutation_importance(model1, x_val, y_val, n_repeats=10, random_state=42)
# n_repeats : 반복횟수
### 결과 ###
# importances : feature별 반복횟수만큼 계산된 score
# importances_mean : 변수별 평균
# importances_sdt : 변수별 표준편차

 

1-3. Feature에 따른 예측값 변화

ICE plot - Individual Conditional Expectation plot

개별 행에서 특정 변수의 변화에 따른 예측 값의 변화(영향력) 시각화 - 변수의 영향력을 파악

PDP - Partial Dependence Plots

여러 행에 대한 lstat의 ICE plot - 각 ICE plot의 평균선이 PDP

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

 

1-4. SHAP - SHapley Additive exPlanations

머신러닝 모델의 예측을 설명하기 위한 방법 중 하나, SHAP값은 게임이론의 Shapley값에 기반을 둠.

Shapley 값 : 게임이론에서 특정 플레이어가 게임에 가져다주는 공헌도를 평가하기 위한 값, 모든 가능한 플레이어의 조합에 대해 그 플레이어가 가져다주는 가치의 기대값을 계산.

SHAP 동작 방식 : 머신러닝 모델의 각 feature가 예측에 미치는 영향을 평가하기 위해 Shapley값의 개념을 사용. 각 feature가 모델의 예측에 미치는 기여도를 정량적으로 평가할 수 있게 해줌.

 

 

2. 4차 미니프로젝트

1) 서울시 총 생활 인구수 예측

서울시 특정구 특정동의 총 생활 인구수를 예측하는 프로젝트

2) 1대1 문의 내용 유형 분류

label_dict = {
    '코드1': 0,
    '코드2': 0,
    '웹': 1,
    '이론': 2,
    '시스템 운영': 3,
    '원격': 4
}

에 따라 텍스트를 분류하는 프로젝트

 

프로젝트를 진행한 코드는 공개된 블로그에 업로드 하기보다 개인 깃허브에 정리했다.