Skip to content

Conversation

lostella
Copy link
Contributor

Issue #, if available: addresses #1200

Description of changes: Using custom ISSMs in DeepState (i.e. other than the default one for the given frequency), does not work because the time features from which coefficients are constructed always fall back to the default ones. This PR changes this, by coupling each ISSM with the time feature that is needed to derive its coefficients.

Tests are added for the ISSM classes, which were not there before.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@lostella lostella added this to the v0.7 milestone Dec 17, 2020
@lostella lostella added the BREAKING This is a breaking change (one of pr required labels) label Dec 17, 2020
rshyamsundar
rshyamsundar previously approved these changes Dec 21, 2020
@lostella lostella dismissed rshyamsundar’s stale review December 21, 2020 12:13

tests are missing, and are pending the bugfix in #1233


season_indices = [[0] * 10, [0] * 2 + [1] * 8]

for item in range(1, 2):
Copy link
Contributor

Choose a reason for hiding this comment

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

You are checking here for only one item?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

right, that was for debugging, I'll revert it

for item in range(1, 2):
for time in range(2, 10):
season_indicator = mx.nd.one_hot(
mx.nd.array([season_indices[item][time]]), 12
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe I am missing something: mx.nd.array([season_indices[item][time]]) is always [1] for this range of item and time values and you always create this one_hot array: [[0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]]?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

on item=0 the season index is always 0, on item=1 the season index changes from 0 to 1 after two time steps

@rshyamsundar
Copy link
Contributor

Also maybe can you run benchmark_m4.py with deep state estimator? Just to see there are no serious differences..

@lostella
Copy link
Contributor Author

lostella commented Dec 22, 2020

@rshyamsundar

      dataset  wQuantileLoss[0.5]  wQuantileLoss[0.9]  mean_wQuantileLoss     sMAPE
0   m4_hourly            0.050327            0.020576            0.040880  0.134823
1    m4_daily            0.033924            0.020054            0.028031  0.036918
2   m4_weekly            0.056826            0.036063            0.046093  0.077881
3  m4_monthly            0.126907            0.104286            0.117584  0.142290

@lostella lostella merged commit f8b7ebb into awslabs:master Dec 22, 2020
@lostella lostella deleted the fix-issm-features branch December 22, 2020 22:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BREAKING This is a breaking change (one of pr required labels)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants