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"를 추가하고,C를0.1과1.0사이의50개 부동소수점 값으로 설정하며,class_weight를"balanced"또는0:0.8, 1:0.2를 포함하는 딕셔너리로 설정하세요.- 모델과 매개변수를 전달하고
cv를kf와 같게 설정하여 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(____.____))