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

For IterativeAlgorithm, put time series algorithms first #3407

Merged
merged 15 commits into from
Mar 31, 2022

Conversation

freddyaboulton
Copy link
Contributor

@freddyaboulton freddyaboulton commented Mar 25, 2022

Pull Request Description

Move time series estimators to the front of the queue for the iterative algorithm based on user feedback.


After creating the pull request: in order to pass the release_notes_updated check you will need to update the "Future Release" section of docs/source/release_notes.rst to include this pull request by adding :pr:123.

@codecov
Copy link

codecov bot commented Mar 25, 2022

Codecov Report

Merging #3407 (02d0728) into main (0ddf705) will decrease coverage by 0.1%.
The diff coverage is 98.6%.

@@           Coverage Diff           @@
##            main   #3407     +/-   ##
=======================================
- Coverage   99.7%   99.7%   -0.0%     
=======================================
  Files        332     332             
  Lines      32445   32510     +65     
=======================================
+ Hits       32316   32380     +64     
- Misses       129     130      +1     
Impacted Files Coverage Δ
...lml/automl/automl_algorithm/iterative_algorithm.py 98.4% <ø> (ø)
evalml/tests/automl_tests/test_automl.py 99.5% <97.7%> (-<0.1%) ⬇️
evalml/automl/automl_search.py 99.7% <100.0%> (+0.1%) ⬆️
...omponents/estimators/regressors/arima_regressor.py 100.0% <100.0%> (ø)
...alml/tests/component_tests/test_arima_regressor.py 100.0% <100.0%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 0ddf705...02d0728. Read the comment docs.

@freddyaboulton freddyaboulton force-pushed the change-ts-estimator-order-iterative branch 2 times, most recently from b72b8d0 to d122a91 Compare March 30, 2022 15:13
@@ -631,6 +633,22 @@ def __init__(
self.data_splitter = self.data_splitter or default_data_splitter
self.pipeline_parameters = pipeline_parameters or {}
self.custom_hyperparameters = custom_hyperparameters or {}
# Fitting takes a long time if the data is too wide or long.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Justification here:

image

if user_arima_hyperparams and not self.custom_hyperparameters[
ARIMARegressor.name
].get("use_covariates"):
self.custom_hyperparameters[ARIMARegressor.name].update(
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Setting this up with custom hyperparameters is the best way I think. It lets users override our heuristic if they don't mind waiting.

@@ -5,7 +5,7 @@

extras_require = {
'update_checker': ['alteryx-open-src-update-checker >= 2.0.0'],
'prophet': ['cmdstan-builder == 0.0.8']
'prophet': ['prophet-prebuilt == 1.0.2']
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Using pre-built wheels to speed up installation.

.tolist()
)
if is_using_windows:
expected_order = [
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is covered because windows test pass but we don't measure coverage for windows.

Copy link
Contributor

@chukarsten chukarsten left a comment

Choose a reason for hiding this comment

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

Awesome Freddy, this looks great. You're going to make people very happy :)

@@ -39,7 +39,7 @@ jobs:
name: Install evalml with test dependencies, core dependencies, & optional requirements (Prophet)
run: |
source test_python/bin/activate
pip install cmdstan-builder==0.0.8
pip install prophet-prebuilt==1.0.2
Copy link
Contributor

Choose a reason for hiding this comment

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

booo, I wanted prophet-freddy

Copy link
Contributor Author

Choose a reason for hiding this comment

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

😂

"XGBoost Regressor",
]
else:
expected_order = [
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we care about order? Probably a nit but I'd think checking that ESR, Prophet and ARIMA are simply in the list of the first few is what we care about. Feel free to ignore though. Just don't want to be changing this test over and over :)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The good news is that adding a new model family won't break this test unless we explicitly change the _ESTIMATOR_FAMILY_ORDER

@freddyaboulton freddyaboulton force-pushed the change-ts-estimator-order-iterative branch from ef28fab to 02d0728 Compare March 30, 2022 21:34
@freddyaboulton freddyaboulton merged commit 9282cc6 into main Mar 31, 2022
@freddyaboulton freddyaboulton deleted the change-ts-estimator-order-iterative branch March 31, 2022 13:59
freddyaboulton added a commit that referenced this pull request Mar 31, 2022
* Skip arima automl tests during conda build

* Enable workflow

* Add to release notes

* Revert config changes
@chukarsten chukarsten mentioned this pull request Mar 31, 2022
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.

None yet

2 participants