Machine Learning/기타

분류모델 하이퍼 파라미터

leehii 2022. 8. 10. 18:36

K-Nearlist-Neighbors(KNN)의 하이퍼  파라미터 :

 

 

 

Decision Tree Classifier의 하이퍼  파라미터 :

 

min_samples_split : 노드 분할을 위한 최소한의 데이터 수 / 기본값 2 /  작을수록 노드 많아져서 과적합 가능성이 일어남 /

이를 높여서 데이터가 분할하는데 필요한 데이터수를 늘려 과적합 제어

 

 

min_samples_leaf : 리프노드가 되기위한 최소한의 데이터 수 /

이를 높여서 리프노드가 되는데 필요한 데이터 수를 늘려서 과적합 제어 /

 

 

max_features : 최대 피처의 갯수 / 기본값 None, 즉 모든 피쳐 사용 /

이 값을 조정해서 분할하는데 고려하는 피쳐의 수를 제한하여 과적합 제어 / 

 

 

max_depth : 트리의 최대깊이 / 기본값 None, 즉 값이 결정되거나 min_samples_split보다 데이터가 작아질떄까지 분할 /

너무 깊어지면 과적합 가능성이 있으므로 깊이를 제한하여 과적합 제어 / 

 

 

max_leaf_nodes : 리프노드의 최대 갯수 

 

 

 

 

Random Forest의 하이퍼 파라미터 :

 

min_samples_split : 노드 분할을 위한 최소한의 데이터 수 / 기본값 2 /  작을수록 노드 많아져서 과적합 가능성이 일어남 /

이를 높여서 데이터가 분할하는데 필요한 데이터수를 늘려 과적합 제어

 

 

min_samples_leaf : 리프노드가 되기위한 최소한의 데이터 수 /

이를 높여서 리프노드가 되는데 필요한 데이터 수를 늘려서 과적합 제어 /

 

 

max_features : 최대 피처의 갯수 / 기본값 None, 즉 모든 피쳐 사용 /

이 값을 조정해서 분할하는데 고려하는 피쳐의 수를 제한하여 과적합 제어 / 

 

 

max_depth : 트리의 최대깊이 / 기본값 None, 즉 값이 결정되거나 min_samples_split보다 데이터가 작아질떄까지 분할 / 너무 깊어지면 과적합 가능성이 있으므로 깊이를 제한하여 과적합 제어 

 

 

max_leaf_nodes : 리프노드의 최대 갯수 

 

 

n_estimators : 결정트리의 갯수를 지정 / 기본값 10 / 갯수가 늘어나면 성능은 좋아질 수 있으나 시간이 오래 걸림

 

 

 

 

AdaBoost의 하이퍼파라미터 :

 

n_estimators: 생성할 학습기의 갯수 / 기본값 50 / 커질수록 학습기가 늘어나므로 모델이 복잡해짐

 

 

learning_rate : 순차적으로 진행할때 마다 적용하는 학습률 0~1 / 기본값 1 / 줄어들수록 가중치 갱신 변동폭이 줄어들어서 학습기들의 경계차이가 줄어듬

 

 

 

 

GBM(Gradient Boost Machine)의 하이퍼파라미터 :

 

min_samples_split : 노드 분할을 위한 최소한의 데이터 수 / 기본값 2 /  작을수록 노드 많아져서 과적합 가능성이 일어남 /

이를 높여서 데이터가 분할하는데 필요한 데이터수를 늘려 과적합 제어

 

 

min_samples_leaf : 리프노드가 되기위한 최소한의 데이터 수 /

이를 높여서 리프노드가 되는데 필요한 데이터 수를 늘려서 과적합 제어 

 

 

max_features : 최대 피처의 갯수 / 기본값 None, 즉 모든 피쳐 사용 /

이 값을 조정해서 분할하는데 고려하는 피쳐의 수를 제한하여 과적합 제어 

 

 

max_depth : 트리의 최대깊이 / 기본값 None, 즉 값이 결정되거나 min_samples_split보다 데이터가 작아질떄까지 분할 /

너무 깊어지면 과적합 가능성이 있으므로 깊이를 제한하여 과적합 제어 

 

 

max_leaf_nodes : 리프노드의 최대 갯수 

 

 

n_estimators : 생성할 트리의 개수를 지정 / 기본값 100 / 많을수록 성능은 좋으나 시간이 오래 걸림

 

 

learning_rate : 순차적으로 진행할때 마다 적용하는 학습률 0~1 / 기본값 0.1 / 낮을수록 최소 오류값을 찾아 예측 성능이 높아질 수 이씅나 많은 트리가 필요하게 되서 시간이 많이 걸림 

 

 

 

 

XGBoost의 하이퍼파라미터 :

 

booster : 어떤 모델을 쓸건지에 대한 파라미터  / 기본값 gbtree / gbtree 트리기반 모델 gblinear 선형모델 /

 

max_depth : 

!!! 가장 먼저 튜닝해줄 하이퍼 파라미터임!!!

트리의 최대깊이 / 0 : 깊이 제한없음 / 기본값은6 / 

클수록 학습데이터에 피팅이 잘되지만 너무 크면 과적합 (보통 3 ~ 10) /  

이 값을 낮춰서 과적합 제어 (약간의 성능을 포기) /

 

 

alpha : L1규제 적용값 / 불필요한 가중치를 0으로 만들어 무시 / 희소데이터가 있거나 피쳐가 많을때 적용 / 기본값 0/

클수록 과적합 감소 /

gamma, lambda 와 함께 튜닝

 

 

lambda : L2규제 적용값 / 노이즈데이터나 너무 크게 튀는 데이터를  잡아줌 / 피쳐가 많을때 적용 /기본값 1 / 

클수록 과적합 감소 (지나치게 클 경우 과소적합) / 

gamma, alpha와 함께 튜닝함 /

 

 

gamma : 리프노트 추가분할을 결정할 최소손실 감소값 / 감마보다 손실이 크게 감소할때 분리 / 기본값 0 / 

값이 클수록 과적합 감소효과있으므로 과적합 조정에 사용 /

alpha , lambda 와 함께 튜닝

 

 

scale_pos_weight : 불균형데이터 균형 유지 / 기본값 1 / 레이블 불균형이 있을때 가중치를 조절해줌 / 데이터 불균형이 심할때 설정

 

 

 

eta : GMB의 학습률과 유사한 것 / 범위 0 ~ 1 /기본값 0.3 / 일반적으로 0.01~0.3정도 설정 (최종학습시에는 0.05이하의 값으로 성능향상에 초점을 맞추고, 튜닝시에는 0.1이상의 값을 사용하여 학습속도를 높이는 것이 좋다) / 

eta 값을 낮춰서 과적합 제어 가능 

 

 

num_boost_around : 생성할 학습기 개수 / 너무 높은 값을 주면 과적합 발생함 / 

eta값을 줄여 과적합을 제어할 경우 이 값을 높여줘야 함 

 

early_stoppings :  조기종료조건

GBM은 n_estimators에 지정된 횟수만큼 끝까지 학습하지만 XGBoost는 조기 중단 파라미터 값을 설정하면 반복중 조기중단 횟수에 도달했을떄 더이상 오류가 감소하지않으면 부스팅을 종료함

>> 이 파라미터를 설정할때는 eval_set과 eval_metric를 같이 설정해줘야 함 / 

 

 

min_child_weight : GBM의min_samples_leaf 와 유사 / 이 값보다 샘플수가 적으면 leaf node가 됨 / 

이 값을 높여서 과적합 조절을 위해 사용  but 너무 크면 과소적합

 

 

sub_sample : 과적합제어를 위해 데이터 샘플링 비율 지정 / 범위 0 ~ 1 (보통 0.5 ~ 1로 지정) /

값을 낮춰 과적합 제어에 사용 

 

 

colsample_bytree :  GBM의max_features 과 유사 / 피쳐가 많을때 과적합 조정에 사용 / 범위 0 ~ 1 / 각각의 트리마다 사용할 피쳐의 비율 /  보통 0.5 ~ 1 사용 / 

값을 낮춰 과적합 제어에 사용