Python

머신 러닝에서 grid search로 하이퍼파라미터 튜닝 마스터하기!!

DSDiary 2023. 4. 2. 12:17
728x90
반응형
SMALL

 

안녕하세요!! 오늘은 그리트 탐색(grid search)에 대해서 정리해 보려고 합니다.

 

 

 

ML 모델에는 데이터에서 학습할 수 없는 설정인 하이퍼파라미터가 필요하고, 모델을 훈련시키기 전에 설정을 해야 해요. 모델에 맞는 최적의 하이퍼파라미터를 찾는 것은 목표 성능을 달성하는 데 매우 중요하기 때문이죠! 그렇지만.. 가짓수가 너무 많기 때문에 최고의 하이퍼파라미터를 찾고 결정하는 것이 어렵습니다. 이런 문제를 해결할 수 있는 방법 중 하나는 그리드 탐색(grid search)를 사용하는 것입니다!

 

 

 

 

Grid Search가 무엇일까요?

 

그리드 서치는 각 하이퍼파라미터에 대해 가능한 값 범위를 정의하고 모든 가능한 조합의 그리드를 생성하는 유명한 하이퍼파라미터 튜닝 기술입니다. 그리드 서치는 validation 세트에다 각 하이퍼파라미터 조합으로 모델을 훈련하고 평가합니다. validation 세트에서 최고의 성능을 내는 하이퍼파라미터 조합이 모델의 최적 하이퍼파라미터로 선택됩니다.

 

 

 

즉! 그리드 서치는 최고의 값을 찾기 위해서 가능한 모든 하이퍼파라미터 조합을 검색하는 기법입니다. 그래서 계산 비용이 많이 들기도 하지만 모델에 가장 적합한 하이퍼파라미터를 찾는 데에는 가장 체계적이고 신뢰할 만한 접근 방식입니다.

 

 

 

 

Python에서 Grid Search를 구현하는 방법은 무엇일까요?

 

파이썬에서 그리드 서치를 구현하기 위해서는 GridSearchCV 클래스를 제공하는 scikit-learn 라이브러리를 사용하면 됩니다. 이 클래스는 지정된 매개변수에 대해 서치를 해서 가능한 하이퍼파라미터 조합을 평가하고 최고의 조합을 반환해 줍니다.

 

 

 

아래 코드는 scikit-learn를 사용해서 Python으로 그리드 서치를 구현한 것입니다.

from sklearn.model_selection import GridSearchCV
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_classification

# 랜덤 데이터 세트 생성
X, y = make_classification(n_samples=1000, n_features=10, n_informative=5, n_classes=2, random_state=42)

# 하이퍼파라미터와 범위 정의
param_grid = {'n_estimators': [50, 100, 200], 'max_depth': [5, 10, 20]}

# RandomForesetClassifier 생성
rf = RandomForestClassifier()

# GridSearchCV 클래스를 생성하고 데이터 fit
grid_search = GridSearchCV(estimator=rf, param_grid=param_grid, cv=5)
grid_search.fit(X, y)

# 최적 하이퍼파라미터 출력
print(grid_search.best_params_)
 
{'max_depth': 20, 'n_estimators': 50}
 
 

 

위의 예에서는 scikit-learn의 make_classification 함수를 사용해서 랜덤 데이터 세트를 만들었습니다. 그런 다음 튜닝하려는 하이퍼파라미터, n_estimators, max_depth, param_grid를 사용해서 가능한 값과 범위를 정의했습니다.

 

RandomForestClassifier를 생성하고 GridSearchCV 클래스에 param_grid, 교차 검증을 위한 fold 수를 함께 전달합니다. 마지막으로 GridSearchCV 클래스를 데이터에 fit하고 최적의 하이퍼파라미터를 출력해보았습니다.

 

 

 

 

Grid Search는 머신 러닝 모델을 위한 최적의 하이퍼파라미터를 찾기 위해 유효한 기술입니다. 모든 경우의 수를 사용하기 때문에 계산 비용이 많이 들 수는 있지만 최적의 하이퍼파라미터 튜닝에 대해서 체계적이고 믿을만한 접근 방식입니다. 그리드 서치를 사용하여 모델의 최고 성능을 뽑아내 보고 가장 정확한 예측을 도출해 볼 수 있습니다!!

 

 

 

728x90
반응형
LIST