Skip to content

[ENH] AutoETS, ARIMA, NaiveForecaster, Dataset loading updates, Differencing/Windowing/Train test transforms. #2828

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 131 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
131 commits
Select commit Hold shift + click to select a range
f769764
[ENH] Add ETS/ARIMA Stuff (#2536)
alexbanwell1 May 13, 2025
8c9de78
Fix bug in AutoARIMA algorithm
May 16, 2025
e1ea7d7
Fix test issues
May 19, 2025
9694bfd
[ENH] Add ETS/ARIMA Stuff (#2536)
alexbanwell1 May 13, 2025
55e99b8
Fix bug in AutoARIMA algorithm
May 16, 2025
85a83d9
Fix test issues
May 19, 2025
d9b137c
Merge branch 'ajb/ets' of https://github.com/aeon-toolkit/aeon into a…
May 20, 2025
bf8e535
[ENH] Add ETS/ARIMA Stuff (#2536)
alexbanwell1 May 13, 2025
fb7afd6
Fix bug in AutoARIMA algorithm
May 16, 2025
237bb91
Fix test issues
May 19, 2025
0c4af69
Merge branch 'ajb/ets' of https://github.com/aeon-toolkit/aeon into a…
May 20, 2025
b2fe31f
remove dataset lists
TonyBagnall May 22, 2025
d381d5e
arima first
TonyBagnall May 24, 2025
3a0552b
move utils
TonyBagnall May 24, 2025
0ac5380
make functions private
TonyBagnall May 24, 2025
44b36a7
Modularise SARIMA model
May 28, 2025
6d18de9
Add ARIMA forecaster to forecasting package
May 28, 2025
b7e6424
Add example to ARIMA forecaster, this also tests the forecaster is pr…
May 28, 2025
e33fa4d
Basic ARIMA model
May 28, 2025
f613f7e
Convert ARIMA to numba version
May 28, 2025
a6b708c
Merge branch 'main' into arb/base_arima
alexbanwell1 May 28, 2025
24ab433
Add Auto ARIMA starting point
May 28, 2025
5060928
Merge branch 'arb/base_arima' into arb/auto_arima
May 28, 2025
9eb00f6
Adjust parameters to allow modification in fit
May 28, 2025
9ef70fa
Merge branch 'arb/base_arima' into arb/auto_arima
May 28, 2025
f0c0443
Non-seasonal AutoARIMA Forecaster
May 28, 2025
5f2d80f
Numbafy AutoARIMA code
May 28, 2025
d4ed4b1
Update example and return native python type
May 28, 2025
0ecca96
Merge branch 'arb/base_arima' into arb/auto_arima
May 28, 2025
a7295e8
Add SARIMA model
May 28, 2025
2893e1b
Fix examples for tests
May 28, 2025
3d6e877
Merge branch 'arb/sarima' into ajb/arima
May 28, 2025
db0704f
Merge branch 'arb/auto_arima' into ajb/arima
May 28, 2025
c83052b
Modify AutoARIMA function to take the model function as a parameter
May 28, 2025
6555e45
Merge branch 'arb/auto_arima' into ajb/arima
May 28, 2025
72b90f7
Add AutoSARIMA Forecaster
May 28, 2025
9801e8b
Fix Nelder-Mead Optimisation Algorithm Example
May 28, 2025
94e9080
Merge branch 'arb/base_arima' into arb/auto_arima
May 28, 2025
f884a91
Merge branch 'arb/base_arima' into arb/sarima
May 28, 2025
7f868b9
Merge branch 'arb/base_arima' into ajb/arima
May 28, 2025
c40ec91
Fix Nelder-Mead Optimisation Algorithm Example #2
May 28, 2025
044b992
Fix SARIMA returning np.float rather than value
May 28, 2025
2f928c7
Fix Nelder-Mead Optimisation Algorithm Example #2
May 28, 2025
23a36a0
Merge branch 'arb/base_arima' into arb/sarima
May 28, 2025
5c0ae94
Merge branch 'arb/base_arima' into arb/auto_arima
May 28, 2025
24bc2bb
Merge branch 'arb/base_arima' into ajb/arima
May 28, 2025
43e4a0c
Merge branch 'arb/auto_arima' into ajb/arima
May 28, 2025
7166a05
Merge branch 'arb/sarima' into ajb/arima
May 28, 2025
94cd5b3
Remove Nelder-Mead Example due to issues with numba caching functions
May 28, 2025
cbdaf5e
Merge branch 'arb/base_arima' into arb/sarima
May 28, 2025
a9a75dd
Merge branch 'arb/base_arima' into arb/auto_arima
May 28, 2025
65bd6ba
Merge branch 'arb/base_arima' into ajb/arima
May 28, 2025
0d0d63f
Fix return type issue
May 28, 2025
628da30
Merge branch 'arb/base_arima' into arb/auto_arima
May 28, 2025
ea9ba9c
Merge branch 'arb/base_arima' into arb/sarima
May 28, 2025
6aca9ef
Fix return type issue
May 28, 2025
e35723b
Merge branch 'arb/sarima' into ajb/arima
May 28, 2025
39a3ed2
Address PR Feedback
May 28, 2025
05a2785
Ignore small tolerances in floating point value in output of example
May 28, 2025
8c9928e
Merge branch 'arb/base_arima' into arb/sarima
May 28, 2025
fd3c846
Merge branch 'arb/base_arima' into arb/auto_arima
May 28, 2025
ad6ae78
Merge branch 'arb/sarima' into ajb/arima
May 28, 2025
a38728b
Merge branch 'arb/auto_arima' into ajb/arima
May 28, 2025
73966ab
Fix kpss_test example
May 28, 2025
b7dfdab
Merge branch 'arb/base_arima' into arb/sarima
May 28, 2025
d00c3fe
Merge branch 'arb/base_arima' into arb/auto_arima
May 28, 2025
436f6d0
Merge branch 'arb/sarima' into ajb/arima
May 28, 2025
d5e32f8
Fix kpss_test example #2
May 28, 2025
a0f090d
Fix kpss_test example #2
May 28, 2025
a398967
Merge branch 'arb/base_arima' into arb/auto_arima
May 28, 2025
f5771d5
Merge branch 'arb/base_arima' into arb/sarima
May 28, 2025
14eddad
Merge branch 'arb/base_arima' into ajb/arima
May 28, 2025
17004d9
Fix floating point inaccuracies causing test to fail
May 28, 2025
9e42778
Merge branch 'arb/sarima' into ajb/arima
May 28, 2025
206f70b
Fix floating point inaccuracies causing test to fail #2
May 28, 2025
b2e0a16
Merge branch 'arb/sarima' into ajb/arima
May 28, 2025
e8657fe
Fix final docstring example
May 29, 2025
cbc790b
Fix final docstring example #2
May 29, 2025
6884703
Update documentation for ARIMAForecaster, change constant_term to be …
Jun 2, 2025
7d6a5b3
Merge branch 'arb/base_arima' into arb/sarima
Jun 2, 2025
56600f7
Add type hints, convert constant_term to bool
Jun 2, 2025
e445d83
Merge branch 'arb/base_arima' into arb/auto_arima
Jun 2, 2025
93b3df8
Convert constant term to bool, add type hints
Jun 2, 2025
0201fd4
Merge branch 'arb/sarima' into ajb/arima
Jun 2, 2025
b50eb74
Merge branch 'arb/auto_arima' into ajb/arima
Jun 2, 2025
29cf107
Convert constant_term to bool, add type hints
Jun 2, 2025
02a9c49
Add type hints
Jun 2, 2025
784bd07
Merge branch 'arb/auto_arima' into ajb/arima
Jun 2, 2025
44a8647
Merge branch 'main' into arb/base_arima
alexbanwell1 Jun 2, 2025
1844225
Merge branch 'main' into arb/auto_arima
alexbanwell1 Jun 2, 2025
b5313e5
Merge branch 'main' into arb/sarima
alexbanwell1 Jun 2, 2025
124b0b4
Merge branch 'main' into ajb/arima
alexbanwell1 Jun 2, 2025
c0cebc0
Merge branch 'ajb/arima' into ajb/ets
Jun 4, 2025
e642605
Remove outdated ets_fast
Jun 4, 2025
eac89a1
Update AutoETS to work with new ETS version rather than old _ets_fast…
Jun 4, 2025
8074e46
Purge ETSFast from files
Jun 4, 2025
f863f3a
Correct predict method to return fitted value rather than array
Jun 5, 2025
2eadc80
Update ETSForecaster to allow multiple predictions without refitting …
Jun 6, 2025
9af3a56
Modify ARIMA to allow predicting multiple values by updating the stat…
Jun 8, 2025
fe2f576
Merge branch 'arb/base_arima' into arb/sarima
Jun 8, 2025
554ec4d
Add ability to predict multiple values by updating the state with new…
Jun 9, 2025
1456d1f
Merge branch 'arb/base_arima' into arb/auto_arima
Jun 9, 2025
4c63af5
Merge branch 'main' into arb/base_arima
TonyBagnall Jun 9, 2025
e898f2f
Fix bug using self.d rather than self.d_
Jun 9, 2025
11c4987
Merge branch 'arb/base_arima' of https://github.com/aeon-toolkit/aeon…
Jun 9, 2025
a8a9ce5
Merge branch 'arb/base_arima' into arb/sarima
Jun 9, 2025
c4d2813
Fix bug using self.d instead of self.d_
Jun 9, 2025
b7e8e43
Merge branch 'arb/auto_arima' into ajb/arima
Jun 9, 2025
595c1e0
Merge branch 'arb/sarima' into ajb/arima
Jun 9, 2025
64f703b
Update to work with predicting multiple values without refitting the …
Jun 9, 2025
16af9e9
Merge branch 'arb/base_arima' into arb/auto_arima
Jun 9, 2025
72017fa
Merge branch 'ajb/arima' into ajb/ets
Jun 9, 2025
d8d25c1
Merge branch 'arb/ets_update' into ajb/ets
Jun 9, 2025
4066cb6
Update AutoETS to work with predicting multiple values by updating st…
Jun 9, 2025
edfe6e0
Merge branch 'arb/auto_arima' into ajb/ets
Jun 9, 2025
0e311bb
Add back in dataset generation files
Jun 10, 2025
ca244ba
Modify dataset generation scripts to handle differenced y but normal x
Jun 10, 2025
c0daa74
Update AutoARIMA to allow predicting multiple values without refittin…
Jun 10, 2025
9dffd2b
Merge branch 'arb/auto_arima' into ajb/arima
Jun 10, 2025
f36bb17
Merge branch 'ajb/arima' into ajb/ets
Jun 10, 2025
fed0d5d
Update NaiveForecaster to work with multiple predictions
Jun 10, 2025
24dae8b
Merge branch 'arb/update_naive' into ajb/ets
Jun 10, 2025
790cb9f
Fix bug in AutoETS causing the seasonal period to be considered for c…
Jun 12, 2025
ff1b186
Remove default args to see if numba stops crashing
Jun 13, 2025
49fdaa6
Fix numba issue
Jun 13, 2025
b452dc7
Fix DivZero Error
Jun 13, 2025
84e3a4b
Fix bug with SARIMA Predictor
Jun 13, 2025
863c2b9
Fix instability with multiplicative damped trend potentially being ne…
Jun 13, 2025
966f739
Change caching parameters
Jun 13, 2025
e6ff1aa
Merge branch 'main' into ajb/ets
TonyBagnall Jul 10, 2025
4a9299e
Merge branch 'ajb/ets' of https://github.com/aeon-toolkit/aeon into a…
Jul 14, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
101 changes: 101 additions & 0 deletions aeon/datasets/Final Dataset Selection.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
Dataset,Series,Category
weather_dataset,T1,Weather
weather_dataset,T2,Weather
weather_dataset,T3,Weather
weather_dataset,T4,Weather
weather_dataset,T5,Weather
solar_10_minutes_dataset,T1,Energy Production
solar_10_minutes_dataset,T2,Energy Production
solar_10_minutes_dataset,T3,Energy Production
solar_10_minutes_dataset,T4,Energy Production
solar_10_minutes_dataset,T5,Energy Production
sunspot_dataset_without_missing_values,T1,Other
wind_farms_minutely_dataset_without_missing_values,T1,Energy Production
wind_farms_minutely_dataset_without_missing_values,T2,Energy Production
wind_farms_minutely_dataset_without_missing_values,T3,Energy Production
wind_farms_minutely_dataset_without_missing_values,T4,Energy Production
wind_farms_minutely_dataset_without_missing_values,T5,Energy Production
elecdemand_dataset,T1,Energy Demand
us_births_dataset,T1,Demographic
saugeenday_dataset,T1,Weather
london_smart_meters_dataset_without_missing_values,T1,Energy Demand
london_smart_meters_dataset_without_missing_values,T2,Energy Demand
london_smart_meters_dataset_without_missing_values,T3,Energy Demand
traffic_hourly_dataset,T1,Transportation
traffic_hourly_dataset,T2,Transportation
traffic_hourly_dataset,T3,Transportation
traffic_hourly_dataset,T4,Transportation
traffic_hourly_dataset,T5,Transportation
electricity_hourly_dataset,T1,Energy Demand
electricity_hourly_dataset,T2,Energy Demand
electricity_hourly_dataset,T3,Energy Demand
pedestrian_counts_dataset,T1,Transportation
pedestrian_counts_dataset,T2,Transportation
pedestrian_counts_dataset,T3,Transportation
pedestrian_counts_dataset,T4,Transportation
pedestrian_counts_dataset,T5,Transportation
kdd_cup_2018_dataset_without_missing_values,T1,Other
australian_electricity_demand_dataset,T1,Energy Demand
australian_electricity_demand_dataset,T2,Energy Demand
australian_electricity_demand_dataset,T3,Energy Demand
oikolab_weather_dataset,T1,Weather
oikolab_weather_dataset,T2,Weather
oikolab_weather_dataset,T3,Weather
oikolab_weather_dataset,T4,Weather
m4_monthly_dataset,T122,Macro
m4_monthly_dataset,T145,Macro
m4_monthly_dataset,T180,Macro
m4_monthly_dataset,T186,Macro
m4_monthly_dataset,T17051,Micro
m4_monthly_dataset,T17088,Micro
m4_monthly_dataset,T17132,Micro
m4_monthly_dataset,T17146,Micro
m4_monthly_dataset,T26710,Demographic
m4_monthly_dataset,T27138,Industry
m4_monthly_dataset,T27170,Industry
m4_monthly_dataset,T27175,Industry
m4_monthly_dataset,T27186,Industry
m4_monthly_dataset,T37009,Finance
m4_monthly_dataset,T37070,Finance
m4_monthly_dataset,T37238,Finance
m4_monthly_dataset,T37248,Finance
m4_monthly_dataset,T47915,Other
m4_weekly_dataset,T1,Other
m4_weekly_dataset,T2,Other
m4_weekly_dataset,T19,Macro
m4_weekly_dataset,T20,Macro
m4_weekly_dataset,T21,Macro
m4_weekly_dataset,T55,Industry
m4_weekly_dataset,T56,Industry
m4_weekly_dataset,T60,Finance
m4_weekly_dataset,T61,Finance
m4_weekly_dataset,T62,Finance
m4_weekly_dataset,T224,Demographic
m4_weekly_dataset,T225,Demographic
m4_weekly_dataset,T226,Demographic
m4_weekly_dataset,T227,Demographic
m4_weekly_dataset,T248,Micro
m4_weekly_dataset,T249,Micro
m4_weekly_dataset,T250,Micro
m4_daily_dataset,T1,Macro
m4_daily_dataset,T2,Macro
m4_daily_dataset,T6,Macro
m4_daily_dataset,T130,Micro
m4_daily_dataset,T131,Micro
m4_daily_dataset,T145,Micro
m4_daily_dataset,T1604,Demographic
m4_daily_dataset,T1605,Demographic
m4_daily_dataset,T1606,Demographic
m4_daily_dataset,T1607,Demographic
m4_daily_dataset,T1614,Industry
m4_daily_dataset,T1615,Industry
m4_daily_dataset,T1634,Industry
m4_daily_dataset,T1650,Industry
m4_daily_dataset,T2036,Finance
m4_daily_dataset,T2037,Finance
m4_daily_dataset,T2041,Finance
m4_daily_dataset,T3595,Other
m4_daily_dataset,T3597,Other
m4_hourly_dataset,T170,Other
m4_hourly_dataset,T171,Other
m4_hourly_dataset,T172,Other
11 changes: 10 additions & 1 deletion aeon/datasets/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,10 @@
"load_human_activity_segmentation_datasets",
# Write functions
"write_to_ts_file",
"write_to_tsf_file",
"write_to_arff_file",
"write_regression_dataset",
"write_forecasting_dataset",
# Single problem loaders
"load_airline",
"load_arrow_head",
Expand Down Expand Up @@ -58,7 +61,13 @@
load_from_tsv_file,
load_regression,
)
from aeon.datasets._data_writers import write_to_arff_file, write_to_ts_file
from aeon.datasets._data_writers import (
write_forecasting_dataset,
write_regression_dataset,
write_to_arff_file,
write_to_ts_file,
write_to_tsf_file,
)
from aeon.datasets._single_problem_loaders import (
load_acsf1,
load_airline,
Expand Down
6 changes: 3 additions & 3 deletions aeon/datasets/_data_loaders.py
Original file line number Diff line number Diff line change
Expand Up @@ -979,7 +979,7 @@ def load_forecasting(name, extract_path=None, return_metadata=False):
>>> X=load_forecasting("m1_yearly_dataset") # doctest: +SKIP
"""
# Allow user to have non standard extract path
from aeon.datasets.tsf_datasets import tsf_all
from aeon.datasets.tsf_datasets import tsf_monash

if extract_path is not None:
local_module = extract_path
Expand All @@ -995,8 +995,8 @@ def load_forecasting(name, extract_path=None, return_metadata=False):
if name not in get_downloaded_tsf_datasets(extract_path):
# Dataset is not already present in the datasets directory provided.
# If it is not there, download and install it.
if name in tsf_all.keys():
id = tsf_all[name]
if name in tsf_monash.keys():
id = tsf_monash[name]
if extract_path is None:
local_dirname = "local_data"
if not os.path.exists(os.path.join(local_module, local_dirname)):
Expand Down
Loading
Loading