시작하기무료로 시작하기

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_trainy_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_[____])
코드 편집 및 실행