베이스라인 모델 선정

Automl 라이브러리인 Pycaret 을 이용하여 트리 기반의 모델 LGBM, XGBoost,CatBoost,Random Forest 총 4가지 모델을 사용하여 RMSE를 기준으로 성능을 비교하였다.

아래 결과에서 LGBM이 성능과 속도면에서 가장 우수하였고, 이에 LGBM 모델을 튜닝하여 최종 모델을 만들고자 하였다.

MAE MSE RMSE R2 RMSLE MAPE TT (Sec)
lightgbm 0.7712 1.8458 1.3581 0.9995 0.0041 0.0024 1.0140
xgboost 0.9238 5.2640 2.2922 0.9985 0.0049 0.0027 0.7280
rf 1.1283 16.4080 4.0224 0.9952 0.0119 0.0035 3.4920
catboost 2.1439 61.0847 7.8128 0.9822 0.0132 0.0057 4.4220

모델 학습 방식

학습 데이터 구성

EDA에서 확인했듯이 홍수기가 갈수기보다 평균 수위가 높았고, 이를 반영하기 위해서 3가지 방식으로 모델을 학습하며 비교하였다.

  1. 월별 학습
  2. 기간별(홍수기,갈수기) 학습
  3. 전체 학습

모델 하이퍼파라미터 구성

또한 LGBM 은 하이퍼파라미터의 영향을 많이 받는 모델이기 때문에, Optuna 를 이용하여 하이퍼 파라미터 최적화를 진행하였다.

Optuna 에는 검색할 하이퍼파라미터 조합, search space를 지정해줘야 하는데 search space를 무작정 넓게 선정하면 학습 시간이 매우 많이 소모되거나 과적합이 될 수도 있기 때문에 각 학습 방식마다 적절한 parameter search space를 선택하여 이용해 튜닝도 최적으로 하고자 하였다.

비교해본 search space는 아래의 페이지에서 확인하듯이 총 S,M,L로 명칭하여 3개의 조합을 생성했다. 모두 휴리스틱하게 범위를 설정해보았다.

Optuna Search Space

실험

선행시간은 10, 60, 180, 360, 720, 1440분에 예측한 결과를 비교하고자 하였으며,

학습에 필요한 데이터들이 밀린 순서만 다를 뿐 전체적인 데이터의 특성은 동일하기 때문에

선행시간 10분에 대하여 최적의 하이퍼파라미터 조합을 찾고 이 파라미터 조합을 이용하여 각 선행시간별 모델을 학습하였다.(모든 선행시간에 대한 튜닝을 진행하는데는 많은 시간이 소요됨)