Allen's 데이터 맛집
모델 성능향상을 위한 GridSearchCV 본문
GridSearchCV란?
GridSearchCV는 머신러닝에서 모델의 성능을 향상하기 위한 하이퍼파라미터 튜닝을 도와주는 도구입니다. 하이퍼파라미터는 모델 학습 과정을 제어하는 값으로, 제대로 설정하지 않으면 모델의 성능이 좋지 않을 수 있어요. 그래서 GridSearchCV는 여러 가지 하이퍼파라미터 조합을 시도해 보면서 최적의 조합을 찾아줍니다.
유명한 Iris(붓꽃)데이터를 가지고 GridSearchCV를 사용하여 최적의 하이퍼파라미터를 찾을 수 있습니다.
from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVC
from sklearn.datasets import load_iris
# 데이터 불러오기
iris = load_iris()
X = iris.data
y = iris.target
# 모델과 하이퍼파라미터 후보들 설정
model = SVC()
param_grid = {'C': [0.1, 1, 10], 'kernel': ['linear', 'rbf', 'poly']}
# GridSearchCV 객체 생성
grid_search = GridSearchCV(estimator=model, param_grid=param_grid, cv=3)
# 그리드 서치 수행
grid_search.fit(X, y)
# 최적의 하이퍼파라미터와 그 때의 점수 출력
print("Best Parameters:", grid_search.best_params_)
print("Best Score:", grid_search.best_score_)
- sklearn.model_selection.GridSearchCV
- (estimator, param_grid, *, scoring=None, n_jobs=None, refit=True, cv=None, verbose=0, pre_dispatch='2*n_jobs', error_score=nan, return_train_score=False)
- estimator : 학습 모델
- param_grid : 실행해볼 hyperparameter 목록, dict 객체
- cv : CrossValication에 사용할 나누는 개수, 기본값 = 5
- verbose : 0(default) : 메시지 출력 안 함, 1 : 간단한 메시지, 2 : 하이퍼 파라미터별 메시지 출력
- n_jobs : -1로 지정시 사용 시 모든 코어를 다 사용, 속도가 빨라짐
결론
GridSearchCV는 모델의 성능을 끌어올리는 데에 큰 도움이 됩니다. 여러분이 사용하고 있는 모델에서도 하이퍼파라미터 튜닝이 가능하다면, GridSearchCV를 활용해 보세요. 이를 통해 더 나은 성능을 얻을 수 있을 거예요!