개발공부

Grid Search란 ? sklearn 라이브러리의 GridSearchCV 사용법 본문

Python/Machine Learning

Grid Search란 ? sklearn 라이브러리의 GridSearchCV 사용법

mscha 2022. 5. 11. 15:15

Grid Search

우리가 지정해준 잠재적 Parameter 들의 후보군 조합중에서 가장 최적의 조합을 찾아준다.

sklearn 라이브러리에서 이를 제공해 주고 있어 쉽게 사용 가능하다.

 

예제

from sklearn.model_selection import GridSearchCV

 

우리는 Support Vector Machine 방식을 사용하겠다.

# 파라미터의 조합으로 사용할 값들을 설정해준다.
param_grid = { 'C' : [0.1, 1, 10, 100], 
            'kernel' : ['linear', 'rbf', 'poly'],
            'gamma' : [1, 0.1, 0.01]}
# estimator : classifier, regressor, pipeline 등 가능
# refit : True가 디폴트로 True로 하면 최적의 하이퍼 파라미터를 찾아서 재학습 시킨다.
# verbose :  log출력의 레벨을 조정한다.
grid = GridSearchCV(estimator = SVC(), param_grid, refit = True,
                    verbose = 4)

# X와 y로 학습 시킨다.
grid.fit(X_train, y_train)

# 가장 좋은 조합의 인공지능을 가져오는 코드
>>> best_classifier = grid.best_estimator_

# 가장 좋은 모델에 사용된 하이퍼 파라미터는 ??
>>> grid.best_params_
{'C': 0.1, 'gamma': 1, 'kernel': 'poly'}

# X_train, y_train으로 학습했을때의 accuracy
>>> grid.best_score_
0.9780219780219781