최적 하이퍼파라미터를 찾는 GridSearchCV
이번 연습에서는 모델을 무작위에 덜 의존하도록, GridSearchCV를 사용해 체계적으로 하이퍼파라미터를 조정해 보겠습니다.
GridSearchCV를 사용하면 옵션을 평가할 때 어떤 성능 지표를 사용할지 지정할 수 있어요. 사기 탐지에서는 가능한 한 많은 사기 사례를 잡아내는 것이 중요하므로, 모델 설정을 재현율(Recall)을 최대로 하도록 최적화할 수 있습니다. 만약 거짓 양성도 줄이고 싶다면 F1-score로 최적화할 수도 있어요. 이렇게 하면 정밀도-재현율 간의 균형을 잘 맞출 수 있습니다.
GridSearchCV는 이미 sklearn.model_selection에서 가져와 두었으니, 바로 시도해 볼까요?
이 연습은 강의의 일부입니다
Python으로 배우는 사기 탐지
연습 안내
- 파라미터 그리드에는 트리 개수로 1과 30을, 분할 기준으로
gini와entropy를 시도하도록 정의하세요. - 비교를 가능하게 하려면
random_state를 5로 고정한 단순한 RandomForestClassifier 모델을 정의하세요. - 재현율을 최적화하도록
scoring옵션을recall로 설정하세요. - 학습 데이터
X_train,y_train에 적합하고, 모델의 최적 파라미터를 얻으세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Define the parameter sets to test
param_grid = {'n_estimators': [____, ____], 'max_features': ['auto', 'log2'], 'max_depth': [4, 8], 'criterion': ['____', '____']
}
# Define the model to use
model = ____(random_state=5)
# Combine the parameter sets with the defined model
CV_model = GridSearchCV(estimator=model, param_grid=param_grid, cv=5, scoring='____', n_jobs=-1)
# Fit the model to our training data and obtain best parameters
CV_model.fit(____, ____)
CV_model.____