Skip to content
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

Autogluon timeseries, addressed comments by sebhrusen #7

Merged
merged 32 commits into from
Oct 6, 2022

Conversation

limpbot
Copy link

@limpbot limpbot commented Oct 5, 2022

Addressed all comments by sebhrusen. Except for the renaming of prediction length.

Copy link
Owner

@Innixma Innixma left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice updates! I'll merge but please consider addressing my comments in a small follow-up PR. I'm merging now to avoid asynchronous communication slowing our velocity.

@@ -129,6 +138,38 @@ def __repr__(self):
return repr_def(self)


def extend_dataset_with_timeseries_config(self, dataset, dataset_config):
if dataset_config['id_column'] is None:
log.warning("Warning: For timeseries task setting undefined itemid column to `item_id`.")
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

refer to it in the warning with the correct key 'id_column'

@@ -129,6 +138,38 @@ def __repr__(self):
return repr_def(self)


def extend_dataset_with_timeseries_config(self, dataset, dataset_config):
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we are manipulating the outer context of dataset_config, maybe this is ok but want to mention that it is happening.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same with manipulating outer context of dataset. Consider adding documentation stating that this is intended or otherwise do a deep copy on the objects.

Comment on lines +14 to +50
if dataset.type is not DatasetType.timeseries:

data = dict(
train=dict(path=dataset.train.data_path('parquet')),
test=dict(path=dataset.test.data_path('parquet')),
target=dict(
name=dataset.target.name,
classes=dataset.target.values
),
problem_type=dataset.type.name # AutoGluon problem_type is using same names as amlb.data.DatasetType
)
exec_file = "exec.py"

else:
dataset = deepcopy(dataset)
if not hasattr(dataset, 'timestamp_column'):
dataset.timestamp_column = None
if not hasattr(dataset, 'id_column'):
dataset.id_column = None
if not hasattr(dataset, 'forecast_range_in_steps'):
raise AttributeError("Unspecified `forecast_range_in_steps`.")

data = dict(
# train=dict(path=dataset.train.data_path('parquet')),
# test=dict(path=dataset.test.data_path('parquet')),
train=dict(path=dataset.train.path),
test=dict(path=dataset.test.path),
target=dict(
name=dataset.target.name,
classes=dataset.target.values
),
problem_type=dataset.type.name, # AutoGluon problem_type is using same names as amlb.data.DatasetType
timestamp_column=dataset.timestamp_column,
id_column=dataset.id_column,
forecast_range_in_steps=dataset.forecast_range_in_steps
)
exec_file = "exec_ts.py"
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if/else could be better broken up into dedicated functions for each modality to avoid an overly long function with a bunch of if/elif/elif/elif/else in future

@Innixma Innixma merged commit 53b816a into Innixma:autogluon_timeseries Oct 6, 2022
Innixma added a commit that referenced this pull request Oct 26, 2022
* Add AutoGluon TimeSeries Prototype

* AutoMLBenchmark TimeSeries Prototype. (#6)

* fixed loading test & train, changed pred.-l. 5->30

* ignore launch.json of vscode

* ensuring timestamp parsing

* pass config, save pred, add results

* remove unused code

* add readability, remove slice from timer

* ensure autogluonts has required info

* add comments for readability

* setting defaults for timeseries task

* remove outer context manipulation

* corrected spelling error for quantiles

* adding mape, correct available metrics

* beautify config options

* fixed config for public access

* Update readme

* Autogluon timeseries, addressed comments by sebhrusen (#7)

* fixed loading test & train, changed pred.-l. 5->30

* ignore launch.json of vscode

* ensuring timestamp parsing

* pass config, save pred, add results

* remove unused code

* add readability, remove slice from timer

* ensure autogluonts has required info

* add comments for readability

* setting defaults for timeseries task

* remove outer context manipulation

* corrected spelling error for quantiles

* adding mape, correct available metrics

* beautify config options

* fixed config for public access

* no outer context manipulation, add dataset subdir

* add more datasets

* include error raising for too large pred. length.

* mergin AutoGluonTS framework folder into AutoGluon

* renaming ts.yaml to timeseries.yaml, plus ext.

* removing presets, correct latest config for AGTS

* move dataset timeseries ext to datasets/file.py

* dont bypass test mode

* move quantiles and y_past_period_error to opt_cols

* remove whitespaces

* deleting merge artifacts

* delete merge artifacts

* renaming prediction_length to forecast_range_in_steps

* use public dataset, reduced range to maximum

* fix format string works

* fix key error bug, remove magic time limit

* Addressed minor comments, and fixed version call for tabular and timeseries modularities (#8)

* fixed loading test & train, changed pred.-l. 5->30

* ignore launch.json of vscode

* ensuring timestamp parsing

* pass config, save pred, add results

* remove unused code

* add readability, remove slice from timer

* ensure autogluonts has required info

* add comments for readability

* setting defaults for timeseries task

* remove outer context manipulation

* corrected spelling error for quantiles

* adding mape, correct available metrics

* beautify config options

* fixed config for public access

* no outer context manipulation, add dataset subdir

* add more datasets

* include error raising for too large pred. length.

* mergin AutoGluonTS framework folder into AutoGluon

* renaming ts.yaml to timeseries.yaml, plus ext.

* removing presets, correct latest config for AGTS

* move dataset timeseries ext to datasets/file.py

* dont bypass test mode

* move quantiles and y_past_period_error to opt_cols

* remove whitespaces

* deleting merge artifacts

* delete merge artifacts

* renaming prediction_length to forecast_range_in_steps

* use public dataset, reduced range to maximum

* fix format string works

* fix key error bug, remove magic time limit

* swapped timeseries and tabular to set version

* make warning message more explicit

* remove outer context manipulation

* split timeseries / tabular into functions

Co-authored-by: Leo <LeonhardSommer96@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants