Created
April 8, 2022 09:53
-
-
Save hrzn/fe1599d781d09fc6ba952c86730e88cb to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # load M3 dataset | |
| m3_train, m3_test = load_m3() | |
| # naive last | |
| naive1_smapes_m3, naive1_time_m3 = eval_local_model( | |
| m3_train, m3_test, NaiveSeasonal, K=1 | |
| ) | |
| # naive seasonal | |
| naive12_smapes_m3, naive12_time_m3 = eval_local_model( | |
| m3_train, m3_test, NaiveSeasonal, K=12 | |
| ) | |
| # Exponential smoothing | |
| ets_smapes_m3, ets_time_m3 = eval_local_model(m3_train, m3_test, ExponentialSmoothing) | |
| # Theta | |
| theta_smapes_m3, theta_time_m3 = eval_local_model(m3_train, m3_test, Theta) | |
| # ARIMA | |
| arima_smapes_m3, arima_time_m3 = eval_local_model( | |
| m3_train, m3_test, ARIMA, p=12, d=1, q=0 | |
| ) | |
| # Kalman filter | |
| kf_smapes_m3, kf_time_m3 = eval_local_model( | |
| m3_train, m3_test, KalmanForecaster, dim_x=12 | |
| ) | |
| # Linear regression | |
| lr_smapes_m3, lr_time_m3 = eval_global_model( | |
| m3_train, m3_test, LinearRegressionModel, lags=30, output_chunk_length=1 | |
| ) | |
| # LGBM | |
| lgbm_smapes_m3, lgbm_time_m3 = eval_global_model( | |
| m3_train, m3_test, LightGBMModel, lags=35, output_chunk_length=1, objective="mape" | |
| ) | |
| # Get forecasts with our pre-trained N-BEATS | |
| start_time = time.time() | |
| preds = nbeats_model_m4.predict(series=m3_train, n=HORIZON) | |
| nbeats_m4_elapsed_time_m3 = time.time() - start_time | |
| nbeats_m4_smapes_m3 = eval_forecasts(preds, m3_test) | |
| # Get forecasts with our pre-trained linear regression model | |
| start_time = time.time() | |
| preds = lr_model_m4.predict(series=m3_train, n=HORIZON) | |
| lr_m4_elapsed_time_m3 = time.time() - start_time | |
| lr_m4_smapes_m3 = eval_forecasts(preds, m3_test) | |
| # Get forecasts with our pre-trained LightGBM model | |
| start_time = time.time() | |
| preds = lgbm_model_m4.predict(series=m3_train, n=HORIZON) | |
| lgbm_m4_elapsed_time_m3 = time.time() - start_time | |
| lgbm_m4_smapes_m3 = eval_forecasts(preds, m3_test) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment