Day102

김재현·2023년 10월 24일

JUPYTER/DL/ML

목록 보기
69/73

#04. 훈련모델 적합

RandomForestClassifier 하이퍼 파라미터

n_estimators결정 트리의 갯수를 지정(기본값=10). 즉, 반복 횟수. 성능에 비례, 속도에 반비례
min_samples_split노드를 분할하기 위한 최소한의 샘플 데이터 수. 과적합을 제어하는 데 사용(기본값=2), 값이 작을 수록 분할 노드가 증가하여 과적합 가능성이 높아짐.
min_samples_leaf리프노드가 되기 위한 최소한의 샘플 데이터 수. 과적합을 제어하는데 사용
max_features최적의 분할을 위해 고려할 최대 feature 개수(기본값=auto), int 형일 경우 갯수, float 형일 경우 비율
max_depth트리의 최대 깊이(기본값=None). max_depthNone일 경우 완벽하게 클래스 값이 결정되거나 데이터 개수가 min_samples_split에서 설정한 값보다 작아질 때 까지 분할
max_leaf_nodes리프 노드의 최대 개수

하이퍼 파라미터 튜닝

GridSearchCV

cv : 쪼개는 단위

n_jobs : 실행할 병렬 작업의 수. CPU의 프로세스 수만큼 설정 가능. -1은 모든 프로세서를 사용함을 의미.


각 변수의 중요도 확인과정

불순도

  • 클래스가 섞이지 않고 분류가 잘 되었을 수록, 불순도가 낮음
  • 클래스가 섞여 있고, 반반인 경우에는, 불순도가 높음
  • 의사결정나무 모델은 이 불순도가 낮아지는 방향으로 학습을 진행

지니계수

  • 불순도를 측정하는 지표
  • 지니계수는 통계적 분산 정도를 정량화해서 표현한 값, 0과 1사이의 값을 가짐
  • 지니계수가 높을 수록 잘 분류되지 못한 것

DecisionTree 모델에서 데이터를 나누는 기준은 지니계수이다. DecisionTree 모델에서 중요도는 지니계수가 얼마나 줄어드는지가 기준이 되는 값이다.

Regression 모델의 회귀계수와 달리 항상 양수값을 갖으며, 특성의 모든 특성 불순도를 합치면 1이 된다.

회귀분석 모델에서 각 변수의 설명력을 의미하는 것이 아님에 유의.


데이터 불균형 해소

데이터 불균형 해소를 위한 smpling 패키지

from imblearn.under_sampling import RandomUnderSampler
from imblearn.over_sampling import RandomOverSampler
from imblearn.over_sampling import SMOTE

1. Under Sampling 방식 - Random Under Sampler

많은 비율을 차지하는 다수 집단에서 일부만 샘플링하는 방식.

소수 집단의 데이터가 어느 정도 확보 되었다고 여겨질 때, 다수 집단의 데이터를 줄여서 균형을 맞춘다.

다수 집단의 유의미한 데이터를 손실할 수 있다는 단점이 존재.

sampling_strategy 파라미터

sampling_strategy : 2진 분류일 경우 실수로 설정 가능

설명
majority다수 클래스만 다시 샘플링
not majority다수 아님 : 다수 클래스를 제외한 모든 클래스를 다시 샘플링
not minority소수 아님 : 소수 클래스를 제외한 모든 클래스를 다시 샘플링
all모든 클래스를 다시 샘플링
auto자동 처리

2. Over Sampling 방식 - Random Over Sampler

소수 집단에서 복원 추출을 수행하는 방식.

Under Sampling처럼 데이터 중 일부를 취하는 것은 아니기 때문에 데이터 손실은 발생하지 않지만, 동일한 데이터를 여러 번 학습 데이터에 포함시키므로 학습 정확도는 높지만 과적합 리스크가 존재.

sampling_strategy 파라미터

sampling_strategy : 2진 분류일 경우 실수로 설정 가능

설명
minority소수 클래스만 다시 샘플링
not majority다수 아님 : 다수 클래스를 제외한 모든 클래스를 다시 샘플링
not minority소수 아님 : 소수 클래스를 제외한 모든 클래스를 다시 샘플링
all모든 클래스를 다시 샘플링
auto자동 처리

3. Over Sampling - SMOTE

소수 집단의 데이터를 바탕으로 새로운 데이터를 생성.

단순히 소수 집단의 데이터를 복원 추출하는 것이 아니라 소수 집단 데이터를 분석해 어떤 특징이 있는지 살피고 그와 유사한 패턴을 가지는 가짜 데이터를 생성.

sampling_strategy 파라미터

sampling_strategy : 2진 분류일 경우 실수로 설정 가능

설명
minority소수 클래스만 다시 샘플링
not majority다수 아님 : 다수 클래스를 제외한 모든 클래스를 다시 샘플링
not minority소수 아님 : 소수 클래스를 제외한 모든 클래스를 다시 샘플링
all모든 클래스를 다시 샘플링
auto자동 처리

혹은 실수 타입으로 설정할 경우 샘플 수의 비율을 의미

k_neighbors 파라미터 (int)

합성 샘플을 생성하는데 사용할 샘플의 가장 가까운 이웃 수 (기본값=5)

모델 생성 과정에서의 하이퍼 파라미터 튜닝

하이퍼 파라미터 튜닝

GridSearchCV

cv : 쪼개는 단위

n_jobs : 실행할 병렬 작업의 수. CPU의 프로세스 수만큼 설정 가능. -1은 모든 프로세서를 사용함을 의미.

0개의 댓글