Scikit Learn에서의 RandomizedSearchCV
Scikit Learn을 사용해 RandomizedSearchCV 객체를 만들어 보세요.
하이퍼파라미터 그리드는 max_depth(5부터 25까지, 양 끝 포함)와 max_features('auto'와 'sqrt')에 대해 설정하세요.
RandomizedSearchCV 객체에 설정할 옵션은 다음과 같아요.
n_estimators가 80인 RandomForestClassifier 추정기- 3-겹 교차 검증(
cv) - 모델 점수는
roc_auc사용 - 병렬 처리를 위해 코어 4개 사용(
n_jobs) - 최적 모델을 다시 학습(refit)하고 훈련 점수를 반환하도록 설정
- 효율성을 위해 모델 5개만 샘플링(
n_iter)
X_train과 y_train 데이터셋은 이미 로드되어 있어요.
선택된 하이퍼파라미터를 추출하려면 cv_results_에서 하이퍼파라미터별로 한 컬럼씩 제공돼요. 예를 들어, 하이퍼파라미터 criterion의 컬럼은 param_criterion입니다.
이 연습은 강의의 일부입니다
Python에서의 하이퍼파라미터 튜닝
연습 안내
- 위 컨텍스트에 맞춰 하이퍼파라미터 그리드를 만드세요.
- 위 컨텍스트에 따라
RandomizedSearchCV객체를 생성하세요. - 학습 데이터에
RandomizedSearchCV객체를 학습(fit)하세요. cv_results_에 인덱싱하여 두 하이퍼파라미터(max_depth,max_features)에 대해 모델링 과정에서 선택된 값을 출력하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Create the parameter grid
param_grid = {'max_depth': list(range(____,26)), 'max_features': [____ , ____]}
# Create a random search object
random_rf_class = RandomizedSearchCV(
estimator = ____(n_estimators=____),
param_distributions = ____, n_iter = ____,
scoring=____, n_jobs=____, cv = ____, refit=____, return_train_score = ____ )
# Fit to the training data
____.fit(X_train, y_train)
# Print the values used for both hyperparameters
print(random_rf_class.cv_results_[____])
print(random_rf_class.cv_results_[____])