Add ARIMARegressor - #1894
Conversation
Codecov Report
@@ Coverage Diff @@
## main #1894 +/- ##
=========================================
+ Coverage 100.0% 100.0% +0.1%
=========================================
Files 274 276 +2
Lines 22360 22571 +211
=========================================
+ Hits 22354 22565 +211
Misses 6 6
Continue to review full report at Codecov.
|
# Conflicts: # evalml/tests/dependency_update_check/latest_dependency_versions.txt
chukarsten
left a comment
There was a problem hiding this comment.
I agree with the comments left by @freddyaboulton and @bchen1116 , but think once those issues are addressed this is good to go.
angela97lin
left a comment
There was a problem hiding this comment.
Added some nit-picky comments, but the biggest thing before merge is, I don't think we should be adding this to _all_estimators_used_in_search?
| p_error_msg = "ARIMA is not installed. Please install using `pip install statsmodels`." | ||
| arima = import_or_raise("statsmodels.tsa.arima.model", error_msg=p_error_msg) |
There was a problem hiding this comment.
Do we need this in fit if we have it in __init__?
There was a problem hiding this comment.
We end up using it a few lines below when we initialize the ARIMA model in different ways depending on if X is passed or not :)
There was a problem hiding this comment.
Ah what I meant was, is there a case where we catch this in fit when we didn't catch it in __init__? Can a user use fit without init? I'm assuming the use case is:
arima = ARIMARegressor(...) # will catch import error
arima.fit(...) # will we ever catch import error here?
freddyaboulton
left a comment
There was a problem hiding this comment.
@ParthivNaresh Thank you for making the changes! I think we need to make sure Arima is not used in automl search for the time being but other than that this is good to go!
bchen1116
left a comment
There was a problem hiding this comment.
Great work! I like the changes made!
angela97lin
left a comment
There was a problem hiding this comment.
Wanted to follow up about needing the import_or_raise statement in fit but otherwise, looks good to go! Thanks for making the changes, this looks really good 🥳
| def __init__(self, date_column=None, trend='n', p=1, d=0, q=0, | ||
| random_seed=0, **kwargs): | ||
| """ | ||
| Arguments: |
| p_error_msg = "ARIMA is not installed. Please install using `pip install statsmodels`." | ||
| arima = import_or_raise("statsmodels.tsa.arima.model", error_msg=p_error_msg) |
There was a problem hiding this comment.
Ah what I meant was, is there a case where we catch this in fit when we didn't catch it in __init__? Can a user use fit without init? I'm assuming the use case is:
arima = ARIMARegressor(...) # will catch import error
arima.fit(...) # will we ever catch import error here?
| 'TimeSeriesBaselineRegressionPipeline', 'TimeSeriesBaselineBinaryPipeline', | ||
| 'TimeSeriesBaselineMulticlassPipeline', 'KNeighborsClassifier', | ||
| 'SVMClassifier', 'SVMRegressor'} | ||
| 'SVMClassifier', 'SVMRegressor', 'ARIMARegressor'} |
Fixes #1498.