Random search는 하이퍼파리미터의 최소/최대값 등으로 지정한 범위 내에서 랜덤으로 조합 후 샘플링하여 최적의 성능을 갖는 하이퍼파라미터가 무엇인지 탐색하는 하이퍼파라미터 튜닝 기법의 하나이다.
1. Random Search 주요 파라미터
1) estimator
주로 model, 알고리즘을 입력
2) param_distributions
dict or list of dicts 형태로 입력, Random Search를 돌릴 파라미터 범위를 지정함
3) n_iter
int 타입으로 입력, 샘플링 되는 하이퍼파라미터 수를 지정함
성능의 품질과 시간을 고려하여 입력하면 된다.
※ default = 10
4) scoring
str, callable, list, tuple or dict 형태로 입력, 교차 검증된 모델의 성능을 평가하는 전략 테스트 집합
※ default = None
4) n_jobs
사용할 CPU 개수로 -1 입력 시 모든 CPU 사용
5) refit
bool, str, or callable형태로 입력,
전체에서 가장 잘 발견된 모수를 추정하여 학습을 다시 할 것인지 여부 지정
※ default=True
6) cv
교차 검증 시 분할할 조각의 수
※ default = None
7) verbose
Controls the verbosity: the higher, the more messages.
8) random_state
값을 고정할 것인지 여부 지정
param_distributions 설정, 아래와 같은 방식으로 random search를 진행할 범위를 지정해준다.
max_depth = np.random.randint(3,20, 10)
max_features = np.random.uniform(0.5, 1, 10)
param_distributions = {"max_depth" : max_depth, "max_features" : max_features}
Random search 라이브러리 로드 및 실행
from sklearn.model_selection import RandomizedSearchCV
clfr = RandomizedSearchCV(model,
param_distributions = param_distributions,
n_iter = 10,
cv= 5,
scoring = "accuracy",
n_jobs = -1,
random_state = 42, verbose = 3)
clfr.fit(X_train, y_train)
'머신러닝과 딥러닝 > ML 개념정리' 카테고리의 다른 글
[ML] 15. 데이터 전처리 (4) - 이상치 다루기(스케일링) (0) | 2022.11.09 |
---|---|
[ML] 12. 데이터 전처리(1) - 기본방법 개요 (0) | 2022.11.09 |
[ML] 9. 하이퍼파라미터 튜닝(2) - Grid Search 주요 파라미터와 어트리뷰트 (0) | 2022.11.03 |
[ML] 8. 하이퍼파라미터 튜닝(1) - 기본개념과 종류 (0) | 2022.11.03 |
[ML] 7. train/test 데이터 나누기, train_test_split (0) | 2022.10.31 |
댓글