Skip to content

Instantly share code, notes, and snippets.

@tomonori-masui
Last active March 10, 2023 06:36
Show Gist options
  • Select an option

  • Save tomonori-masui/0288859a553a1e200bb865d7fd8a67b3 to your computer and use it in GitHub Desktop.

Select an option

Save tomonori-masui/0288859a553a1e200bb865d7fd8a67b3 to your computer and use it in GitHub Desktop.
from sklearn.metrics import mean_absolute_error
from sklearn.metrics import mean_absolute_percentage_error
def plot_forecast(series_train, series_test, forecast, forecast_int=None):
mae = mean_absolute_error(series_test, forecast)
mape = mean_absolute_percentage_error(series_test, forecast)
plt.figure(figsize=(12, 6))
plt.title(f"MAE: {mae:.2f}, MAPE: {mape:.3f}", size=18)
series_train.plot(label="train", color="b")
series_test.plot(label="test", color="g")
forecast.index = series_test.index
forecast.plot(label="forecast", color="r")
if forecast_int is not None:
plt.fill_between(
series_test.index,
forecast_int["lower"],
forecast_int["upper"],
alpha=0.2,
color="dimgray",
)
plt.legend(prop={"size": 16})
plt.show()
return mae, mape
fh = np.arange(test_len) + 1
forecast = forecaster.predict(fh=fh)
coverage = 0.9 # confidence interval
forecast_int = forecaster.predict_interval(fh=fh, coverage=coverage)['Coverage'][coverage]
sun_arima_mae, sun_arima_mape = plot_forecast(
sun_train, sun_test, forecast, forecast_int
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment