From 13c0b35fa6c80b83c9222f465e5d561a36c71142 Mon Sep 17 00:00:00 2001 From: Jacky Jang <39112330+V-nguard@users.noreply.github.com> Date: Fri, 20 Sep 2024 14:56:56 -0400 Subject: [PATCH] breaking: allowmean and allowdrift True by default in AutoARIMA (#918) --- .pre-commit-config.yaml | 2 +- experiments/m3/src/data.py | 1 - experiments/m3/src/evaluation.py | 5 ++--- experiments/m3/src/experiment.py | 4 +--- nbs/src/core/models.ipynb | 4 ++-- python/statsforecast/models.py | 4 ++-- settings.ini | 2 +- 7 files changed, 9 insertions(+), 13 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c3117a51e..ecf6e5de1 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -25,4 +25,4 @@ repos: hooks: - id: mypy args: [--ignore-missing-imports] - exclude: 'setup.py' + exclude: (experiments|setup.py) diff --git a/experiments/m3/src/data.py b/experiments/m3/src/data.py index efa81148a..2a0588787 100644 --- a/experiments/m3/src/data.py +++ b/experiments/m3/src/data.py @@ -1,5 +1,4 @@ import fire -import pandas as pd from datasetsforecast.m3 import M3, M3Info dict_datasets = { diff --git a/experiments/m3/src/evaluation.py b/experiments/m3/src/evaluation.py index 4a082ecfe..c5e6ea3cf 100644 --- a/experiments/m3/src/evaluation.py +++ b/experiments/m3/src/evaluation.py @@ -1,7 +1,6 @@ from itertools import product import fire -import numpy as np import pandas as pd from datasetsforecast.losses import mape, smape @@ -50,11 +49,11 @@ def main(test: bool = False): time = evaluation.query('metric=="time"').T if test: expected_results = { - 'AutoARIMA': 4.57, + 'AutoARIMA': 4.46, 'CES': 4.85, 'AutoETS': 4.35, 'DynamicOptimizedTheta': 4.54, - 'StatisticalEnsemble': 4.23, + 'StatisticalEnsemble': 4.3, } expected_results = pd.Series(expected_results) pd.testing.assert_series_equal( diff --git a/experiments/m3/src/experiment.py b/experiments/m3/src/experiment.py index 96d367258..a95c07c9a 100644 --- a/experiments/m3/src/experiment.py +++ b/experiments/m3/src/experiment.py @@ -1,6 +1,5 @@ import os import time -from functools import partial from multiprocessing import cpu_count os.environ['NIXTLA_NUMBA_RELEASE_GIL'] = '1' os.environ['NIXTLA_NUMBA_CACHE'] = '1' @@ -11,8 +10,7 @@ from statsforecast import StatsForecast from statsforecast.models import ( AutoTheta, AutoETS, AutoCES,AutoARIMA, - Theta, OptimizedTheta, - DynamicTheta, DynamicOptimizedTheta + DynamicOptimizedTheta ) from statsforecast.utils import AirPassengers as ap diff --git a/nbs/src/core/models.ipynb b/nbs/src/core/models.ipynb index 2fce44a4a..947cd11a4 100644 --- a/nbs/src/core/models.ipynb +++ b/nbs/src/core/models.ipynb @@ -500,8 +500,8 @@ " test_kwargs: Optional[str] = None,\n", " seasonal_test: str = 'seas',\n", " seasonal_test_kwargs: Optional[Dict] = None,\n", - " allowdrift: bool = False,\n", - " allowmean: bool = False,\n", + " allowdrift: bool = True,\n", + " allowmean: bool = True,\n", " blambda: Optional[float] = None,\n", " biasadj: bool = False,\n", " season_length: int = 1,\n", diff --git a/python/statsforecast/models.py b/python/statsforecast/models.py index 23a3d5570..dad5285ce 100644 --- a/python/statsforecast/models.py +++ b/python/statsforecast/models.py @@ -289,8 +289,8 @@ def __init__( test_kwargs: Optional[str] = None, seasonal_test: str = "seas", seasonal_test_kwargs: Optional[Dict] = None, - allowdrift: bool = False, - allowmean: bool = False, + allowdrift: bool = True, + allowmean: bool = True, blambda: Optional[float] = None, biasadj: bool = False, season_length: int = 1, diff --git a/settings.ini b/settings.ini index 484fb4df4..2effbb377 100644 --- a/settings.ini +++ b/settings.ini @@ -21,7 +21,7 @@ ray_requirements = fugue[ray]>=0.8.1 protobuf>=3.15.3,<4.0.0 numpy<2 pandas<2.2 dask_requirements = fugue[dask]>=0.8.1 spark_requirements = fugue[spark]>=0.8.1 plotly_requirements = plotly plotly-resampler -dev_requirements = black datasetsforecast fire nbdev nbformat nbdev_plotly pandas[plot] pmdarima polars[numpy] pre-commit prophet pyarrow pybind11 pytest scikit-learn setuptools<70 supersmoother +dev_requirements = black datasetsforecast fire nbdev==2.3.25 nbformat nbdev_plotly pandas[plot] pmdarima polars[numpy] pre-commit prophet pyarrow pybind11 pytest scikit-learn setuptools<70 supersmoother nbs_path = nbs doc_path = _docs recursive = True