-
Notifications
You must be signed in to change notification settings - Fork 4
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
Autogluon timeseries, addressed comments by sebhrusen #7
Conversation
Innixma autogluon timeseries
There was a problem hiding this 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`.") |
There was a problem hiding this comment.
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): |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
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" |
There was a problem hiding this comment.
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
* 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>
Addressed all comments by sebhrusen. Except for the renaming of prediction length.