grid search는 이전 게시글에서 설명했듯이,
사용자가 지정한 범위 내에서 모든 경우의 수를 완전 탐색하여 최적의 하이퍼 파라미터가 무엇인지 탐색하는
하이퍼파라미터 튜닝 기법의 하나이다.
1. Grid Search 주요 파라미터
1) estimator
주로 model, 알고리즘을 입력
2) param_grid
dict or list of dictionaries 형태로 입력, Grid Search를 돌릴 파라미터 범위를 지정함
3) scoring
str, callable, list, tuple or dict
※ default = None
4) n_jobs
사용할 CPU 개수로 -1 입력 시 모든 CPU 사용
5) cv
교차 검증 시 분할할 조각의 수
※ default = None
6) verbose
Controls the verbosity: the higher, the more messages.
param 설정, 아래와 같은 방식으로 grid search를 진행할 범위를 지정해준다.
max_depth = list(range(3,20,2))
max_features = [0.3, 0.5, 0.7, 0.8, 0.9]
parameters = {"max_depth" : max_depth, "max_features" : max_features}
Gridsearch 라이브러리 로드 및 실행
from sklearn.model_selection import GridSearchCV
clf = GridSearchCV(model, parameters, n_jobs = -1, cv = 5, verbose = 2)
clf.fit(X_train, y_train)
2. Grid Search 어트리뷰트
1) cv_results
dict of numpy (masked) ndarrays
{
'param_kernel': masked_array(data = ['poly', 'poly', 'rbf', 'rbf'],
mask = [False False False False]...)
'param_gamma': masked_array(data = [-- -- 0.1 0.2],
mask = [ True True False False]...),
'param_degree': masked_array(data = [2.0 3.0 -- --],
mask = [False False True True]...),
'split0_test_score' : [0.80, 0.70, 0.80, 0.93],
'split1_test_score' : [0.82, 0.50, 0.70, 0.78],
'mean_test_score' : [0.81, 0.60, 0.75, 0.85],
'std_test_score' : [0.01, 0.10, 0.05, 0.08],
'rank_test_score' : [2, 4, 3, 1],
'split0_train_score' : [0.80, 0.92, 0.70, 0.93],
'split1_train_score' : [0.82, 0.55, 0.70, 0.87],
'mean_train_score' : [0.81, 0.74, 0.70, 0.90],
'std_train_score' : [0.01, 0.19, 0.00, 0.03],
'mean_fit_time' : [0.73, 0.63, 0.43, 0.49],
'std_fit_time' : [0.01, 0.02, 0.01, 0.01],
'mean_score_time' : [0.01, 0.06, 0.04, 0.04],
'std_score_time' : [0.00, 0.00, 0.00, 0.01],
'params' : [{'kernel': 'poly', 'degree': 2}, ...],
}
2) best_estimator_
지정한 param 중 최적의 성능을 내는 estimator 출력
3) best_score_
지정한 param 중 최적의 성능 값 출력
4) best_params_
지정한 param 중 최적의 성능을 내는 param 출력
5) best_index_
지정한 param 중 최적의 성능을 내는 param의 인덱스를 출력
6) scorer_
최적의 성능을 가진 모델을 고르는데 사용한 scorer function 출력
7) n_splits_
교차검증 시 분할 수(folds/iterations)
8) refit_time_
전체 데이터 셋에서 최적의 모델을 refiting 하는데 걸린 시간
9) multimetric_
bool 타입으로 출력
10) feature_names_in_
사용된 피처들의 이름을 출력
🔗 참고자료
AIS 7기 오늘코드 박조은 강사님 강의자료
'머신러닝과 딥러닝 > ML 개념정리' 카테고리의 다른 글
[ML] 12. 데이터 전처리(1) - 기본방법 개요 (0) | 2022.11.09 |
---|---|
[ML] 10. 하이퍼파라미터 튜닝(3) - Random Search 주요 파라미터 (0) | 2022.11.03 |
[ML] 8. 하이퍼파라미터 튜닝(1) - 기본개념과 종류 (0) | 2022.11.03 |
[ML] 7. train/test 데이터 나누기, train_test_split (0) | 2022.10.31 |
[ML] 6. 회귀모델 성능평가지표, 분류모델 성능평가지표 (0) | 2022.10.31 |
댓글