Bootcamp/AI

[ML] 교차 검증, HPO, XAI

K_Hyul 2023. 10. 19. 10:06
728x90

1. 교차 검증

우리가 한걸 보면 train data와 test data를 분리한 뒤 고정된 상태로 진행되었다.

교차 검증은 어제 진행된 train data에서 답을 아는 train, test data로 다시 분리해 학습하는 것을 진행했다.

하지만 1번의 분할로 또다시 고정된 것이라 overfit의 위험이 높다.

여기서 떠오른 방법이 교차 검증이다.

 

 

1) 교차 검증(Cross validation)

train data 와 test data를 나누는 것을 여러번 해서 parameters을 찾아 제일 좋은 결과를 내는 것을 목표로 한다.

이렇게 해서 얻는

장점은 모든 데이터셋을 훈련에 활용할 수 있고 정확도를 향상시킨다.

또한 데이터 부족으로 인한 underfitting을 방지할 수 있다.

모든 데이터 셋을 평가에 활용할 수 있다.

평가에 사용되는 데이터 편중을 막을 수 있다.

평가 결과에 따라 좀더 일반화된 모델을 만들수 있다.

 

하지만 단점으로는 Iteration 횟수가 많기 떄문에 모델 훈련/평가 시간이 오래걸린다.

 

 

 교차 검증 기법 종류로는 대표적으로 사용하는 K-Fold cross validation이 있고 이걸 자주 사용한다.

 

 

2. HPO (Hyper Parameter Optimization)

하이퍼 파라미터는 최적의 학습 모델을 구현하기 위해 사용자가 지정해주는 값

HPO를 최적화를 위해서 결정되어야하는 것은 두가지

 (1) 하이퍼 파라미터 탐색 범위

 (2) 하이퍼 파라미터 탐색 정책(방법)

learning rate

max_depth

n_estimators등 모델별 다양한 변들이 하이퍼 파라미터에 해당

 

 

 

- LGBMClassifier Hyper parameter를 보면

n_estimators : 모델에서 사용할 트리 갯수

learning_rate : 학습률

criterion : 분할 품질을 측정하는 기능(default:gini)

max_depth : 트리의 최대 깊이

min_samples_split : 내부 노드를 분할하는데 필요한 최소 샘플 수 (default : 2)

min_samples_leaf : 리프 노드에 있어야 할 최소 샘플 수 (default : 1)

min_weight_fraction_leaf : min_sample_leaf와 같지만 가중치가 부여된 샘플 수에서의 비율

max_features : 각 노드에서 분할에 사용할 특징의 최대 수

max_leaf_nodes : 리프 노드의 최대수

min_impurity_decrease : 최소 불순도

min_impurity_split : 나무 성장을 멈추기 위한 임계치

bootstrap : 부트스트랩(중복허용 샘플링) 사용 여부

 

Manual Search : 사람이 수동으로 하이퍼 파라 미터를 변경하는 작업으로

 

hp = {
    "max_depth": 5,
    "criterion" : "gini",
    "n_estimators" : 50,
    "learning_rate" : 0.1
}

이런 식으로 입력한다.

 

Grid Search : 하이퍼 파라미터 구간에서 일정 간격으로 값을 선택하여 선택된 모든 값을 탐색하는 최적해를 찾는 가장 기본적이고 간단한 기법

Random Search : 탐색 구간 안에서 임의로 파라미터 값을 선택

Bayesian Search : 매회 새로운 하이퍼 파라미터 값에 대한 조사를 수행할 시 사전 지식을 충분히 반영하면서 동시에 전체적인 탐색 과정을 체계적으로 수행하는 방법

 

 

3. XAI (Explainable Artificial Intelligence)

설명 가능한 인공지능의 약자로 인공지능의 행위와 도출한 결과를 사람이 이해할 수 있는 형태로 설명하는 방법론과 분야를 일컫는다.

 

1) SHAP : 각 피쳐들이 개별 예측에 얼마나 기여하였는가? ( shap.summary_plot(shap_values[1],X_te))

2) SAGE : 모델 학습시 각 피쳐들에 얼마나 의존하였는가? ( plot_importance)

 

728x90

'Bootcamp > AI' 카테고리의 다른 글

[DL]Deep Learning  (0) 2023.10.23
[타이타닉] 타이타닉 경진대회 完  (0) 2023.10.20
[ML] 앙상블, 부스팅  (0) 2023.10.18
[ML] Data EDA, Cleaning, Feature Extraction (Pandas)  (0) 2023.10.12