하이퍼파라미터 튜닝 / 최적화 과정을 통해 예측 모델의 성능을 향상시킴.
- Validation_curve : 단일 하이퍼 파라미터 최적화
- GridSearchCV : 그리드를 사용한 복수 하이퍼 파라미터 최적화
- ParameterGrid : 복수 파라미터 최적화용 그리드 ( 수동으로 GridSearchCV )
Validation_curve 단일 하이퍼 파라미터 최적화
- param_range : 테스트할 범위
- cv : k-fold cross validation n번 테스트
- scoring : 최적화 기준
Training Score VS Cross-Validation Score 간극이 커지는 지점 부근 좁은 Scale을 다시 param_range로 설정하여 확인.
GridSearchCV
다차원. grid search를 사용해 자동으로 복수개의 내부 모형 생성 후 최적 파라미터를 찾아준다.
from sklearn.model_selection import GridSearchCV
# 랜덤포레스트 하이퍼파라미터 튜닝
rf_reg = RandomForestRegressor()
# 파라미터 조합 range 딕셔너리 형태로 생성
param_grid = {
"n_estimators":[100,500,1000],
"max_depth":[10, 30, 50],
"max_features":[6, 8, 10, 12, 14, 16],
'min_samples_leaf' : [8, 12, 18 ],
'min_samples_split' : [8, 16, 20]
}
# GridSearchCV 객체 생성
rf_reg_tuned = GridSearchCV(estimator=rf_reg,
param_grid=param_grid,
cv=3, # k-fold cross validation
n_jobs=-1, # 병렬처리
verbose=2)
# fit 메서드 호출
rf_reg_tuned.fit(X_train_scaled, y2)
# 최고 점수를 낸 파라미터 가진 모형
rf_reg_tuned.best_estimator_
# n_jobs = -1 : all of your processors will be used
(계산을 담당하는 core 몇 개의 프로세스를 사용할 것인가를 지정, 갯수 만큼만 n_jobs를 늘리면 속도가 빨라진다.)
*n_jobs를 인수로 가진 ML모델 : RandomForest, DecisionTree
'Data Science > Machine learning' 카테고리의 다른 글
Transform Numeric Data - Normalization 입력 데이터 정규화 (0) | 2021.11.21 |
---|---|
k-means Clustering 클러스터링 (0) | 2021.11.21 |
[Feature Selection] Permutation Importance (0) | 2021.08.02 |
[Feature Selection] Shapley Values (0) | 2021.07.15 |
[Preprocessing] 범주형 변수 인코딩 (0) | 2021.07.11 |