시작하기무료로 시작하기

RandomizedSearchCV를 활용한 하이퍼파라미터 튜닝

보셨듯이, GridSearchCV는 계산 비용이 많이 들 수 있습니다. 특히 큰 하이퍼파라미터 공간을 검색하는 경우 더욱 그렇죠. 이 경우에는 지정된 확률 분포에서 고정된 수의 하이퍼파라미터 설정을 테스트하는 RandomizedSearchCV를 사용할 수 있습니다.

diabetes_df의 학습 및 테스트 세트는 X_train, X_test, y_train, y_test로 미리 로드되어 있으며, 타깃은 "diabetes" 입니다. 로지스틱 회귀 모델은 logreg로 생성 및 저장되었으며, KFold 변수는 kf로 저장되었습니다.

하이퍼파라미터 범위를 정의하고 sklearn.model_selection에서 import 된 RandomizedSearchCV를 사용하여 이러한 옵션 중에서 최적의 하이퍼 파라미터를 찾아 볼 것입니다.

이 연습은 강의의 일부입니다

scikit-learn으로 배우는 지도 학습

강의 보기

연습 안내

  • params를 생성하세요. penalty 값으로 "l1""l2"를 추가하고, C0.11.0 사이의 50개 부동소수점 값으로 설정하며, class_weight"balanced" 또는 0:0.8, 1:0.2를 포함하는 딕셔너리로 설정하세요.
  • 모델과 매개변수를 전달하고 cvkf와 같게 설정하여 Randomized Search CV 객체를 생성하세요.
  • logreg_cv를 학습 데이터에 학습시키세요.
  • 모델의 최적 파라미터와 정확도 점수를 출력하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Create the parameter space
params = {"penalty": ["____", "____"],
         "tol": np.linspace(0.0001, 1.0, 50),
         "C": np.linspace(____, ____, ____),
         "class_weight": ["____", {0:____, 1:____}]}

# Instantiate the RandomizedSearchCV object
logreg_cv = ____(____, ____, cv=____)

# Fit the data to the model
logreg_cv.____(____, ____)

# Print the tuned parameters and score
print("Tuned Logistic Regression Parameters: {}".format(____.____))
print("Tuned Logistic Regression Best Accuracy Score: {}".format(____.____))
코드 편집 및 실행