반응형
이전 에피소드에서 XGBoost와 LightGBM 모델을 기본 파라미터로 적용해봤습니다.
이번에는 이들 모델의 성능을 GridSearchCV를 활용한 하이퍼파라미터 튜닝을 통해 더욱 향상시켜보겠습니다.
🛠️ 1. 사용할 도구 불러오기
from sklearn.model_selection import GridSearchCV, KFold
import lightgbm as lgb
✅ 2. LightGBM 파라미터 튜닝 예시
lgb_model = lgb.LGBMRegressor(objective='regression', random_state=42)
param_grid = {
'num_leaves': [20, 31, 40],
'learning_rate': [0.01, 0.05, 0.1],
'n_estimators': [1000, 2000],
'max_depth': [3, 4, 5]
}
kfold = KFold(n_splits=5, shuffle=True, random_state=42)
grid_search = GridSearchCV(estimator=lgb_model,
param_grid=param_grid,
scoring='neg_mean_squared_log_error',
cv=kfold,
verbose=1)
grid_search.fit(X, y)
📊 3. 최적 파라미터 확인
print("Best Parameters:", grid_search.best_params_)
print("Best RMSLE:", np.sqrt(-grid_search.best_score_))
예시 결과:
Best Parameters: {'learning_rate': 0.05, 'max_depth': 4, 'n_estimators': 2000, 'num_leaves': 31}
Best RMSLE: 0.1294
📤 4. 최적 모델로 제출 파일 생성
best_model = grid_search.best_estimator_
preds = best_model.predict(X_test)
submission = pd.DataFrame({
'Id': test['Id'],
'SalePrice': np.expm1(preds)
})
submission.to_csv('submission_lgb_tuned.csv', index=False)
🧠 튜닝 전략 팁
- 파라미터 후보군이 클수록 시간이 오래 걸리므로 RandomizedSearchCV로 대체 가능
- 중요한 하이퍼파라미터:
- num_leaves: 모델 복잡도 조절
- learning_rate: 낮을수록 학습 속도 느리지만 일반화 좋음
- n_estimators: 트리 개수, 과적합에 영향
✅ 정리
- LightGBM 튜닝을 통해 RMSLE 기준 점수 대폭 개선
- 실전 캐글에서도 파라미터 튜닝은 순위 상승의 핵심 전략
➡️ 다음 편에서는 전체 과정을 요약하며 회고하고, 다른 데이터셋 도전 또는 앙상블 기법으로 확장하는 방향을 소개하겠습니다 🙌
반응형
'04. 캐글' 카테고리의 다른 글
| 00018. [KAG-002] House Prices 예측 #7 - 프로젝트 회고 및 다음 도전 방향 (0) | 2025.04.15 |
|---|---|
| 00016. [KAG-002] House Prices 예측 #5 - XGBoost & LightGBM 적용 (0) | 2025.04.15 |
| 00015. [KAG-002] House Prices 예측 #4 - 다양한 회귀 모델 학습 및 성능 비교 (0) | 2025.04.15 |
| 00014. [KAG-002] House Prices 예측 #3 - 결측치 처리 & 파생 피처 생성 (0) | 2025.04.15 |
| 00013. [KAG-002] House Prices 예측 #2 - 데이터 탐색 및 시각화 (0) | 2025.04.15 |