새소식

AIVLE School DX 3기

[에이블스쿨 7주차] 머신러닝6

  • -
728x90
반응형

 

 

하이퍼 파라미터(Hyper parameter)

알고리즘을 사용하여 모델링할 때 최적화하기 위해 조절할 수 있는 옵션
(지식과 경험 + 다양한 시도)

1) KNN

  • k값에 따라 성능이 달라짐
  • 거리 계산법(metric)에 따라 성능이 달라짐

 

2) Decision Tree

  • max_depth : 트리의 최대 깊이 제한
  • min_samples_leaf : leaf가 되기 위한 최소한의 샘플 데이터 수
  • min_samples_split : 노드를 분할하기 위한 최소한의 샘플 데이터 수

 

🤔 그럼 모든 파라미터를 다 찾아보는 게 좋은가요?

모릅니다!

파라미터를 일부분만 찾아보면(RandomSearch)
      → 시간 절약  but❗ 최적의 값인지는 모름
파라미터 전부를 찾아보면(Grid Search)
      
최적의 파라미터 값 찾을 수 있음  but❗ 시간이 너~어~무 오래 걸림

Random Search 실습

# 파라미터 선언
  # max_depth: 1~50
param = {'max_depth' : range(1, 51)}

# Random Search 선언
  # cv=5
  # n_iter=20
  # scoring='r2'
model = RandomizedSearchCV(model_dt,    #기본 모델 이름
                           param,       # 매개변수 범위를 가지고 있는 딕셔너리 변수
                           cv=5,        # K-Fold CV 분할 개수
                           n_iter=20,   # 임의로 선택할 매개변수 값
                           scoring='r2' # 사용할 평가지표(default는 없음)
                           )
# 학습하기
model.fit(x_train, y_train)
# 수행 정보
model.cv_results_

# 최적 파라미터
model.best_params_

# 최고 성능
model.best_score

 

⭐CV용도

  1. 성능예측(일반적인, 객관적)
  2. 최적 파라미터 값 설정

결과확인

# mean_test_score 확인
model.cv_results_

최적 파라미터

model.best_params_

최고 성능

model.best_score_
728x90
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.