Allen's 데이터 맛집

모델 성능향상을 위한 GridSearchCV 본문

Machine Learning/머신러닝

모델 성능향상을 위한 GridSearchCV

Allen93 2023. 8. 28. 15:45

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를 활용해 보세요. 이를 통해 더 나은 성능을 얻을 수 있을 거예요!