목차
- 하이퍼파라미터 튜닝이 중요한 이유
- GridSearchCV란? 장점과 단점
- RandomizedSearchCV란? 장점과 단점
- 두 방법의 주요 차이점 요약
- 실전 예제 코드 비교
- 언제 어떤 방법을 선택해야 할까?
- 마무리 정리
1. 하이퍼파라미터 튜닝이 중요한 이유
머신러닝 모델은 학습 전에 정해야 하는 설정값, 즉 하이퍼파라미터(hyperparameter)에 따라 성능이 크게 달라집니다.
이런 튜닝 과정을 자동화하고 최적화해주는 도구가 바로 GridSearchCV와 RandomizedSearchCV입니다.
2. GridSearchCV란? 장점과 단점
GridSearchCV는 가능한 모든 조합을 탐색합니다.
param_grid = {
'max_depth': [3, 5, 7],
'min_samples_split': [2, 4, 6]
}
→ 총 3 x 3 = 9가지 조합을 모두 실험
✅ 장점
- 전수조사 방식으로 최적의 조합을 확실히 찾을 수 있음
- 결과가 재현 가능
❌ 단점
- 조합 수가 많아지면 시간이 오래 걸림
- 고차원 탐색에는 비효율적
3. RandomizedSearchCV란? 장점과 단점
RandomizedSearchCV는 일부 조합을 무작위로 샘플링해서 평가합니다.
from scipy.stats import randint
param_dist = {
'max_depth': randint(3, 10),
'min_samples_split': randint(2, 20)
}
search = RandomizedSearchCV(model, param_distributions=param_dist, n_iter=10)
→ 지정한 n_iter 횟수만큼 랜덤한 조합을 시도
✅ 장점
- 탐색 속도가 빠름
- 조합 수가 너무 많은 경우 효율적
- 연속형 값 또는 넓은 범위 탐색에 유리
❌ 단점
- 최적의 조합을 놓칠 수 있음
- 결과가 매번 달라질 수 있음 (seed 고정 필요)
4. 두 방법의 주요 차이점 요약
항목 GridSearchCV RandomizedSearchCV
탐색 방식 | 모든 조합 탐색 | 일부 조합을 무작위 탐색 |
속도 | 느림 | 빠름 |
성능 | 최적 보장 | 최적은 아닐 수 있음 |
사용 적합도 | 조합 수 적을 때 | 조합 수 많을 때 |
연속형 파라미터 | 비효율적 | 효율적 |
재현성 | 항상 동일 | seed 설정 필요 |
5. 실전 예제 코드 비교
🔍 GridSearchCV 예제
from sklearn.model_selection import GridSearchCV
param_grid = {
'n_estimators': [50, 100],
'max_depth': [3, 5, 10]
}
grid = GridSearchCV(model, param_grid, cv=3)
grid.fit(X_train, y_train)
print(grid.best_params_)
🎲 RandomizedSearchCV 예제
from sklearn.model_selection import RandomizedSearchCV
from scipy.stats import randint
param_dist = {
'n_estimators': randint(50, 200),
'max_depth': randint(3, 15)
}
random_search = RandomizedSearchCV(model, param_distributions=param_dist,
n_iter=10, cv=3, random_state=42)
random_search.fit(X_train, y_train)
print(random_search.best_params_)
6. 언제 어떤 방법을 선택해야 할까?
상황 추천 방법
파라미터 후보 수가 적다 | GridSearchCV |
빠르게 튜닝하고 싶다 | RandomizedSearchCV |
연속값 조정이 필요하다 | RandomizedSearchCV |
성능이 정말 중요하고 시간이 충분하다 | GridSearchCV |
파라미터 조합이 10개 이상 | RandomizedSearchCV + 나중에 GridSearchCV로 미세 튜닝 |
✨ Tip: 보통은 RandomizedSearchCV로 범위 좁히고,
최종 확인은 GridSearchCV로 진행하는 전략이 좋아요!
7. 마무리 정리
GridSearchCV와 RandomizedSearchCV는 하이퍼파라미터 튜닝에서 가장 많이 쓰이는 도구입니다.
각자의 장단점이 뚜렷하므로, 문제의 특성과 시간, 자원에 따라 적절히 선택하는 것이 중요합니다.
머신러닝의 성능은 튜닝에서 갈립니다.
두 방법을 모두 익혀두면 실전에서 훨씬 유리해요!
'AI' 카테고리의 다른 글
Bayesian Optimization은 GridSearch보다 나을까? 하이퍼파라미터 튜닝 비교 분석 (0) | 2025.04.18 |
---|---|
AutoML은 얼마나 쓸만할까? 장단점과 실제 활용 사례 분석 (0) | 2025.04.17 |
GridSearchCV로 하이퍼파라미터 튜닝하기 (0) | 2025.04.15 |
scikit-learn으로 모델 평가하는 방법 (0) | 2025.04.14 |
딥러닝 vs 머신러닝 vs AI – 개념 깔끔하게 정리해드림 (0) | 2025.04.12 |