반응형
하이퍼 파라미터
모델 학습 전에 사용자가 직접 설정해주는 파라미터들
EX)
- 결정 트리의 max_depth
- KNN의 k
- 신경망의 learning rate, batch size, epoch 등
튜닝??
이러한 하이퍼 파라미터들을 바꿔보면서 가장 좋은 성능이 나오게 조정하는 작업
왜 중요한가??
- 모델 성능 극대화 -> 튜닝을 잘하면 정확도, 정밀도, F1-score 등이 눈에 띄게 향상될 수 있다.
- 과적합 / 과소적합 방지 -> 적절한 튜닝은 모델의 일반화 성능을 높여줘, 오버피팅이나 언더피팅을 줄일 수 있음
- 최적의 모델 선정 -> 동일한 알고리즘이라도 하이퍼 파라미터에 따라 성능 차이가 크기 때문에 중요함
하이퍼 파라미터의 종류
- 모델 관련 하이퍼 파라미터
- 예 : max_depth, n_estimators, C, gamma 등
- 학습 관련 하이퍼 파라미터
- learning rate, batch size, epochs, optimizer 종류 등
튜닝 방법 (종류)
1. Grid Search (그리드 탐색)
- 여러 하이퍼 파라미터 조합을 모두 시도해서 가장 성능 좋은 걸 찾음
- 장점 : 확실하고 단순
- 단점 : 경우의 수가 많아지면 속도가 매우 느림
2. Random Search(랜덤 탐색)
- 모든 조합을 보는 대신 일부 조합만 랜덤하게 선택
- 장점 : 빠르고 성능 좋은 조합 찾을 확률 높음
- 단점 : 최적값을 놓칠 수 있음
3. Bayesian Optimization (베이지안 최적화)
- 과거 결과를 기반으로 다음 시도할 하이퍼파라미터를 예측해서 선택
- 탐색 효율이 좋고 빠르게 최적값에 접근
이번에 데이터 분석 Mini-Project를 진행할 때 나는 Grid Search를 하려했으나 너무 오래 걸려서 기한 안에 제출을 못할 거 같애서 Random Search를 시행했다.
from sklearn.model_selection import RandomizedSearchCV
from sklearn.metrics import make_scorer, f1_score
# 모델 초기화
model = XGBClassifier(random_state=42)
# 하이퍼파라미터 그리드 설정
param_dist = {
'n_estimators': [50, 100, 200],
'max_depth': [3, 5, 10],
'learning_rate': [0.01, 0.1, 0.2],
'subsample': [0.8, 1.0],
'colsample_bytree': [0.8, 1.0],
'gamma': [0, 1, 5]
}
# F1 Score를 평가 지표로 사용
scorer = make_scorer(f1_score, average='weighted')
# RandomSearchCV 초기화
random_search = RandomizedSearchCV(
estimator=model,
param_distributions=param_dist,
n_iter=20, # 시도할 조합 수 (적절히 조정 가능)
scoring=scorer,
cv=5, # 5-Fold Cross Validation
verbose=1,
random_state=42,
n_jobs=-1 # 모든 CPU 코어 사용
)
# 하이퍼파라미터 튜닝 수행
random_search.fit(X_train, Y_train)
# 최적의 하이퍼파라미터와 성능 출력
print("Best Parameters:", random_search.best_params_)
print("Best F1 Score:", random_search.best_score_)
하이퍼 파라미터 튜닝을 하기 전에는 위와 같았다. 하지만 RandomSearchCV 시행해서 최적의 파라미터를 찾고 실행한결과......
무려 0.0011점이나 올랐다!
- Accuracy(정확도) : 전체 예측 중 정답 맞춘 비율
- Precision(정밀도) : 모델이 Positive라고 예측한 것 중에 실제로도 Positive인 비율
- Recall(재현율) : 실제로 Positive인 것들 중에서 모델이 맞춘 비율
- F1 Score (조화 평균) : Precision과 Recall의 조화 평균
반응형
'SKALA > AI' 카테고리의 다른 글
AutoGen (0) | 2025.04.24 |
---|---|
Cross Validation (0) | 2025.04.23 |
Graph RAG (0) | 2025.04.22 |
앙상블(Ensemble) (0) | 2025.04.21 |
네이버 뉴스 RAG 실습(3) - Prompting 및 RAG 구축 (2) | 2025.04.11 |