[python] scikit-learn을 활용한 그리드 서치

이번 포스트에서는 Scikit-learn 라이브러리를 사용하여 그리드 서치(Grid Search)를 수행하는 방법에 대해 소개하겠습니다. 그리드 서치는 여러 하이퍼파라미터 조합을 시도해 가장 좋은 조합을 찾는 데 사용되는 강력한 하이퍼파라미터 튜닝 도구입니다.

라이브러리 설치 및 임포트

먼저, Scikit-learn 라이브러리를 설치해야 합니다. 아래의 명령어를 사용하여 설치할 수 있습니다.

pip install scikit-learn

설치가 완료되었다면 다음과 같이 라이브러리를 임포트합니다.

import numpy as np
import pandas as pd
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

그리드 서치 수행

그리드 서치를 수행하기 위해 사용할 모델과 하이퍼파라미터 조합을 정의합니다. 예를 들어, 서포트 벡터 머신(SVM) 모델의 C와 gamma 하이퍼파라미터를 조정해보도록 하겠습니다.

param_grid = {'C': [0.1, 1, 10], 'gamma': [0.001, 0.01, 0.1]}

다음으로, 그리드 서치 객체를 생성하고 학습 데이터와 함께 fit() 메서드를 호출합니다.

grid_search = GridSearchCV(SVC(), param_grid)
grid_search.fit(X, y)

수행 결과로, 최적의 하이퍼파라미터 조합과 해당 조합에서의 최고 성능을 확인할 수 있습니다.

print("Best parameters:", grid_search.best_params_)
print("Best score:", grid_search.best_score_)

결론

Scikit-learn의 그리드 서치 기능을 사용하면 다양한 모델과 하이퍼파라미터 조합을 효과적으로 탐색할 수 있습니다. 이를 통해 모델의 성능을 최대한 끌어올릴 수 있습니다. 그리드 서치를 활용하여 머신러닝 모델을 개선하는데 도움이 되었기를 바랍니다.

참고 자료