Changelog
All notable changes to this project are documented in this file since v0.1.8. The source code for most releases is available on GitHub.
[0.19.10] - 2024-10-14
Added
Changed
Fixed
Fixed the name of a paramter in
auxmodels.mlp_stack
(#234)
[0.19.9] - 2024-07-06
Added
Added
Forecaster.synthesize_models()
Changed
Fixed
Made compatible with more recent versions of the shap and xgboost packages
[0.19.8] - 2024-01-22
Added
Changed
Fixed
Fixed
notebook.results_vis()
function when the dictionary keys are not strings.Transfer learning no longer fails when fitted values cannot be generated – still investigating the root cause of this issue.
[0.19.7] - 2023-12-12
Added
Added multivariate transfer learning
Changed
must_keep
inForecaster.auto_Xvar_select
can now be str type and will maintain the expected behavior.
Fixed
[0.19.6] - 2023-12-04
Added
Changed
Fixed
Fixed how ARIMA model was reading future xreg values.
[0.19.5] - 2023-10-30
Added
Added
fi_try_order
as an argument intune_test_forecast()
.
Changed
Fixed
Got rid of the
AdditiveExplainer
andGPUTreeExplainer
inForecaster.save_feature_importance()
which do not work with feature importance as it is currently set up.
[0.19.4] - 2023-10-27
Added
Added more feature importance options, all sourced through the shap library.
Changed
shap is now a requirement and eli5 is not.
Changed
Forecaster.reduce_Xvars()
to use only shap feature importance to rank features.Removed
fi_method
argument fromtune_test_forecast()
.
Fixed
Fixed how a pandas function was called that was raising a warning.
Fixed feature importance to use shap only with TreeExplainer, PermutationExplainer, and other explainers (#85). See the docs The eli5 package appears to be deprecated.
[0.19.3] - 2023-10-02
Added
Added
'verbose':[-1]
to lightgbm grids.
Changed
Refactored code and changed library version requirements to eliminate warnings that were originating from the seaborn (#49) and pandas libraries.
Fixed
[0.19.2] - 2023-09-21
Added
Added
set_aside_test_set
argument to theutil.find_optimal_transformation()
function to prevent leakage.Added the
util.gen_rnn_grid()
function.Tensorflow models now save the
ymin
andymax
attributes in history to facilitate transfer learning.
Changed
Changed where
boxcox_tr()
andbocxcox_re()
functions are located insrc
so thatTransformer
andReverter
objects can more easily be pickled and the output when printed is more descriptive.Changed the lightgbm default grid to suppress output.
Fixed
Added
**kwargs
inutil.backtest_for_resid_matrix()
to make pipelines that require kwargs work.
[0.19.1] - 2023-09-16
Added
Added transfer learning for RNN and LSTM models.
Added more Xvars to infer in the
util.infer_apply_Xvar_selection()
function.Added
regr
argument toForecaster.transfer_predict()
.Added
Forecater.save_tf_model()
andForecaster.load_tf_model()
functions.
Changed
Transferred models store Xvar info in history.
Fixed
Fixed an issue with RNN models where AR terms that were not sequential were not counted correctly.
Fixed an issue where Xvars were not being recorded correctly in history for RNN models.
[0.19.0] - 2023-09-15
Added
Added
Forecaster.transfer_predict()
method. Only univariate sklearn models supported for now (#77).Added
Forecaster.transfer_cis()
method.Added
carry_fit_models
attribute inForecaster
object that can be changed when object is initialized.Added
util.infer_apply_Xvar_selection()
function.
Changed
Changed how many history attributes are stored for each evaluated model, making the
Forecaster
object more memory efficient.Refactored forecasting code for sklearn models so that model evaluation is more efficient.
Changed the
max_ar = 'auto'
behavior inForecaster.auto_Xvar_select()
.Changed scikit-learn dependency to
<1.3.0
due to it not working with the shap library.
Fixed
Fixed an issue with combo modeling where defaults were not working when a previous model had been run test only.
[0.18.16] - 2023-08-10
Added
Changed
Fixed
Fixed an issue where
impute_lookback=None
was not working withfill_strategy='moving_seasonal_average'
(#70).
[0.18.15] - 2023-08-07
Added
Added
models
argument toutil.backtest_metrics
.
Changed
Seasonality is inferred with more functions.
Made
find_optimal_transformation
never evaluate confidence intervals to save resources.
Fixed
Made a more descriptive error when
Forecaster
/MVForecaster
objects are initiatedcis=True
and an insufficient test size.
[0.18.14] - 2023-08-06
Added
Changed
Forecaster.add_ar_terms()
now accepts collections as arguments and will add individual lags to the object according to what is passed there.Prophet and Silverkite models now accept direct autoregressive forecasting by passing lagged variables (‘AR…’) to the
Xvars
arguments in the models. As long as the lag order is the same or greater than the forecast horizon, lags are accepted.Cleaned up silverkite model code.
Fixed
[0.18.13] - 2023-08-03
Added
Added
util.Forecaster_with_missing_vals()
function (#66).Added
Forecaster.round()
method.
Changed
Fixed
Fixed banking history for failed models. Empty dictionaries no longer saved to
Forecaster.history
norMVForecaster.history
. There were instances where plotting was failing as a result.
[0.18.12] - 2023-08-01
Added
Added callbacks to the prophet model (#65).
Added
fourier_order
as a parameter in theForecaster.add_seasonal_regressors()
andForecaster.add_cycle()
methods.
Changed
Fixed
[0.18.11] - 2023-07-31
Added
Changed
Fixed
Fixed an issue where Prophet was not adding additional regressors correctly (#63).
[0.18.10] - 2023-07-30
Added
Added the
restore_series_length()
function (#62).
Changed
Changed how in-sample metrics are evaluated. If the series length currently in the object and the predictions are different lengths, the prediction-length is truncated so that an in-sample metric can still be evaluated.
Fixed
Fixed documentation typos.
[0.18.9] - 2023-07-27
Added
Added the
RobustScaler
transformer and added it to the default optimal transformation search.Added
'robust'
as a valid normalizer argument when forecasting with scikit-learn esitmators.
Changed
Fixed
[0.18.8] - 2023-07-03
Added
Changed
Made an explicit error message when the RNN model does not have enough observations to evaluate (#58).
Changed the title of the loss plot from the RNN model.
Fixed
Fixed how the prophet model creates its externals regressors dataframe to avoid a
ValueError
(#55).Fixed an error with the RNN model when forecast horizon is 1.
[0.18.7] - 2023-06-24
Added
Changed
Changed requirements to avoid a dask/lightgbm error when importing the Forecaster module (#46).
Fixed
Calling
auto_forecast()
without tuning a model first no longer raises an error when banking the model’s history (#52).RNN and LSTM models no longer raise errors with default CV parameters.
[0.18.6] - 2023-06-01
Added
Added
exclude
argument toForecaster.plot()
,Forecaster.plot_test_set()
, andForecaster.plot_fitted()
.
Changed
Fixed
[0.18.5] - 2023-05-17
Added
Changed
The combo model can now accept one-model arguments to facilitate auto-selecting “best” models.
Fixed
Updated requirement version of lightgbm (#46)
[0.18.4] - 2023-04-28
Added
Changed
Took out
infer_datetime_format
args from pandas functions since they are deprecated.Modified example grids.
Fixed
[0.18.3] - 2023-04-22
Added
Changed
Fixed
Fixed the test-set length check when determining min length required for confidence intervals, which was not processing floating points precisely enough.
[0.18.2] - 2023-04-19
Added
Added
MVForecaster.add_signals()
for multivariate stacking.Added
Forecaster.add_series()
to make multivariate RNNs possible.Added
return_train_only
in theutil.find_optimal_transformation()
function to add additional leaking-prevention measures to this function.Added padding options in
Forecaster.ingest_Xvars_df()
.Added
exclude_models
argument toReverter.fit_transform()
.
Changed
SeriesTransformer
no longer deletes attributes after reverting, making the object more reusable.Reverter
objects always copy the passedForecaster
objects to make them more flexible and able to be used in more multivariate contexts.Added
__copy__()
and__deepcopy__()
methods to several objects.Removed
Forecaster.add_diffed_terms()
.Changed how
Forecaster.add_lagged_terms()
deals with the introduction of N/A values – just warn instead of chopping observations.Changed how
train_only
arguments are read inSeriesTransformer
when there is no test_length in theForecaster
object. If test_length is 0, thentrain_only
behaves as if it were False.
Fixed
Fixed how exogenous variables are read in
util.find_optimal_lag_order()
.train_only
was being ignored inSeriesTransformer.DeseasonTransform()
.
[0.18.1] - 2023-04-14
Added
Added functions to create expanding dynamic intervals using the conformal framework with backtesting:
util.backtest_for_resid_matrix()
,util.get_backtest_resid_matrix()
, andutil.overwrite_forecast_intervals()
.Added a check for the correct estimator type with
Forecaster.auto_Xvar_select()
.
Changed
Fixed
Fixed
Forecaster.export_Xvars_df()
, which wasn’t working correctly when exogenous regressors were added withForecaster.ingest_Xvars_df()
.
[0.18.0] - 2023-04-13
Added
Added tbats model.
MVForecaster
can now have Xvars added to it.Added
multiseries.line_up_dates()
function.New argument
test_again
added toForecaster.manual_forecast()
andMVForecaster.manual_forecast()
.auto_forecast()
in the same objects has the same new argument.model
argument added toForecaster.save_feature_importance()
and doesn’t have to be called right after a model is evaluated.Added
verbose
args tocross_validate()
andutil.find_optimal_transformation()
functions to offer more transparency around these processes.Added
min_grid_size
argument toForecaster.limit_grid_size()
andtune_test_forecast()
.
Changed
Distinction between level/non-level is no longer tracked within
Forecaster
andMVForecaster
objects and all methods that facilitated with that have gone away (diff()
,integrate()
, etc). UseSeriesTransformer
to gain the same plus more functionality.Cross validation and tuning faster due to using more efficient objects.
Cross validation has more customization available.
RNNs and naive models can be optimized using grid search.
All forecasting functions rewritten to be more efficient by using more efficient objects and fewer loops.
Added
Forecaster.chop_from_front()
andForecaster.chop_from_back()
methods.Less information stored in history.
Can only refer to series with default or user-selected names within
MVForecaster
.The structure of
MVForecaster
has changed.mvf.y
is a dictionary with series in it instead of being located inmvf.series1['y']
. The old way was to keep better track of level/nonlevel series but that no longer exists.test_only arg is gone in
Forecaster.manual_forecast()
in favor ofForecaster.test()
,MVForecaster.test()
. All out-of-sample methods facilited withchop_from_front()
to split data and ensure no data leaks.MVForecaster.add_optimizer_func()
now accepts functions.MVForecaster.manual_forecast()
now acceptsXvars
as an argument.normalizer
argument considered a hyperparameter where applicable and not given its own entry in history.Got rid of several
Forecaster
methods that are never demonstrated in examples.Got rid of
Forecaster.backtest()
andMVForecaster.backtest()
.Pipeline.backtest()
andMVPipeline.backtest()
are better alternatives.
Fixed
The first element in m is taken if multiple are passed to
util.find_optimal_transformation()
. The code was taking the second.Fixed the diffy arg in
Forecaaster.adf_test()
.cvkwargs
were not being passed to thecross_validate()
function innotebook.tune_test_forecast()
.util.find_optimal_transformation()
was only using first value ofm
for seasonal adjustments when multiple were passed.
[0.17.20] - 2023-04-02
Added
Changed
Fixed
Fixed the
MVPipeline.backtest()
method to return consistent results when a transformation is not taken on theForecaster
objects.
[0.17.19] - 2023-04-01
Added
Changed
util.find_optimal_transformation()
now uses pipeline backtesting, making it harder to leak data into the decision and also to make cross validation possible.
Fixed
[0.17.17] - 2023-03-31
Added
Forecaster
/MVForecaster
objects pickled in now re-initiate warning logging for estimated models.
Changed
Fixed
[0.17.16] - 2023-03-29
Added
Added
util.metrics.abias()
function.
Changed
Revamped the RNN model. Now accepts exogenous regressors and other small changes that I believe will make it faster and more accurate, as well as allow for more customization.
Fixed
Fixed the
Pipeline.backtest()
function, which was adding too much space between consecutive training sets.Fixed the train_only argument in
SeriesTransformer.DetrendTransform()
whenloess = True
.
[0.17.15] - 2023-03-27
Added
Added a LOESS detrender (from statsmodels) to the
SeriesTransformer
object. Called usingSeriesTransformer.DetrendTransform()
.
Changed
SeriesTransformer
can seasonally adjust the same series multiple times (to capture multiple seasonalities).The
util.find_optimal_transformation()
function now tries a LOESS detrender by default.
Fixed
[0.17.14] - 2023-03-17
Added
Changed
“Differenced” no longer displayed when calling
Forecaster.__repr__()
.
Fixed
Fixed plotting confidence intervals on separate axes in the
Forecaster
andMVForecaster
objects.
[0.17.13] - 2023-03-12
Added
Added
Forecaster.STL()
method.Added
cilevel
argument toPipeline.backtest()
method.Added
SeriesTransformer.DeseasonTransform()
and corresponding revert function.Added
util.metrics.bias()
function.Added
seasonal_adj
in defaulttry_order
argument fromutil.find_optimal_transformation()
.
Changed
Fixed
Fixed how metrics are calculated after reverting a detrend transformation.
[0.17.12] - 2022-03-08
Added
Added a
Forecaster.add_metric()
andMVForecaster.add_metric()
argument that can be used for custom metrics.Added a default
called
argument inMVForecaster.add_optimizer_func()
to be the function’s name.
Changed
Changed how metrics are set when initializing the objects and how they can be set later.
Changed how metrics can be accepted in
util.backtest_metrics()
.
Fixed
Fixed the error message that is displayed when setting metrics goes wrong.
[0.17.11] - 2022-03-03
Added
Changed
Removed pandas-datareader as a dependency.
Fixed
[0.17.10] - 2023-03-02
Added
Changed
Small changes in documentation.
Fixed
Fixed so that
Forecaster
andMVForecaster
objects can be pickled again (broke after 0.17.7 update). Added better testing of that feature.
[0.17.9] - 2023-02-26
Added
Added
Forecaster.add_signals()
method for custom model stacking.
Changed
Took out the LevelTestSetActuals column from
MVForecaster.export('model_summaries')
.
Fixed
Fixed the default
determine_best_by
arg inForecaster.export()
.
[0.17.8] - 2023-02-25
Added
Changed
Took out an error when setting validation metric to R2 and less than 2 obs in validation set. Because of cross validation, this error isn’t applicable.
Fixed
Fixed
Forecaster.set_metrics()
method.
[0.17.7] - 2023-02-24
Added
Changed
Code refactoring to gain efficiency and make coding base more maintainable. Better practices being followed.
Users can now choose which metrics to evaluate for any forecasting procedure. The defaults remain what they always were.
Changed the documentation in a few key spots to (hopefully) be clearer. For example,
Forecaster._estimators_
global is nowForecaster().estimator
attribute. This also makes pickling more convenient.
Fixed
[0.17.6] - 2023-02-23
Added
Changed
Updated requirements in test directory.
Fixed
Fixed
auxmodels.mlp_stack()
for multivariate forecasting.
[0.17.5] - 2023-02-22
Added
Added the catboost model to the out-of-the-box models. Made catboost a required dependency.
Added catboost grids to example grids files.
Added
backtest()
method forPipeline
andMVPipeline
.Added the
util.backtest_metrics()
function.Added
FutureWarning
s toForecaster.backtest()
andMVForecaster.backtest()
related methods. All backtesting will be moved to pipelines in the future.
Changed
Fixed
[0.17.4] - 2023-02-14
Added
Added an explicit error for when
auxmodels.mlp_stack()
is specified incorrectly.Added
ax
argument to more plotting functions.Added test scripts to the GitHub repository.
Added an explicit error in
Forecaster.auto_Xvar_select()
for situations when monitoring a test metric but no test set is specified.
Changed
Explicitly specify
dtype = float
for parts of code that raise a warning when this is not the case.Changed to relative library imports wherever possible.
Changed the
Forecaster.__deepcopy__()
to be more explicit.Changed how
GridGenerator
gets grids and added more grids files to choose from.Got rid of some confidence-interval information when exporting model summary info from
MVForecaster
.MVForecaster.export('lvl_test_set_predictions')
no longer fails when there is no test set.
Fixed
Fixed the
AnomalyDetector.EstimatorDetect()
function.Fixed
util.break_mv_forecaster()
for situations whenMVForecaster
does not have a test set.Fixed how exporting works in
MVForecaster
so that errors are not returned when test set is 0 and default args are maintained.
[0.17.2] - 2023-02-09
Added
Changed
Explicitly specify
dtype = float
for parts of code that raise a warning when this is not the case.Logging a warning from
SeriesTransformer.DetrendTranform()
instead of raising it.
Fixed
[0.17.1] - 2023-02-08
Added
Added
FutureWarning
s to functions that touch theForecaster.diff()
method. This method will be removed soon as theSeriesTransformer
object is a better alternative that does the same thing.Added
diffy
argument toForecaster.adf_test()
.Added a
correct_residuals()
function that corrects residuals for autocorrelation before building confidence intervals.
Changed
The
train_only
default argument inauxmodels.auto_arima()
changed to False.Changed how default arguments are parsed in
Forecaster.export()
.Refactored code to avoid a
SettingWithCopyWarning
from pandas inForecaster.ingest_Xvars_df()
.
Fixed
Removed the
print_attr
argument fromnotebook.results_vis()
that is no longer accepted inForecaster.diff()
.Removed a warning from
Forecaster.ingest_Xvars_df()
that shouldn’t have been raised.
[0.17.0] - 2023-02-06
Added
Added the
cis
argument toForecaster__init__()
andMVForecaster.__init__()
.
Changed
Only conformal intervals now supported in
Forecaster
andMVForecaster
. By default, these will not be generated and can only be generated if there is a test set and it is specified to a sufficient length.Removed
Forecaster.proba_forecast()
andMVForecaster.proba_forecast()
and all probabilistic arguments in functions.Default
test_length
argument inForecaster.__init__()
andMVForecaster.__init__()
is now 0.Took out the
exog_coint
argument fromvecm.__init__()
since it’s not actually usable.Only model-specific and hyperparameter optimization warnings will be logged in warnings.log and other warnings will be printed.
Changed many categories of warnings from
UserWarning
toWarning
.
Fixed
Added
staticmethod
decorators toutil.metrics
methods. This doesn’t change functionality, just the documentation.
[0.16.6] - 2023-02-03
Added
Changed
Fixed
Fixed the warning in
Forecaster.ingest_Xvars_df()
.
[0.16.5] - 2023-01-31
Added
Changed
Fixed
Fixed an error that can arise from the
util.break_mv_forecaster()
function.Fixed the
AnomalyDetector.EstimatorDetect()
function.
[0.16.4] - 2023-01-31
Added
Added mapie as a requirement.
Changed
Forecaster.proba_forecast()
now uses conformal prediction from the mapie package to create confidence intervals and is much more efficient. This will be also implemented inMVForecaster
soon.Took out ‘CIPlusMinus’ as a history key in
Forecaster
andMVForecaster
.
Fixed
[0.16.3] - 2023-01-29
Added
Added a naive/seasonal naive estimator to
Forecaster
.
Changed
Forecaster.add_diffed_terms
no longer supports second differencing.
Fixed
Fixed the warning that gets passed for the RNN and Silverkite models when
dynamic_testing
is passed asFalse
.
[0.16.0] - 2023-01-28
Added
Changed
It is now possible to skip model testing by setting test_length = 0 in
Forecaster
andMVForecaster
.Got rid of LastTestSetPrediction and LastTestSetActuals columns from model summary df.
Got rid of
best_fcst
DataFrame.Gave documentation a once-over.
Refactored code to be slightly more efficient.
Fixed
The scaler in
MVForecaster
was not just being applied to the test-set inputs and was being called twice per model train.
[0.15.16] - 2023-01-25
Added
added
ax
argument to all forecast plotting functions.
Changed
Fixed
removed
tensorflow
from the list of requirements and added it andtensorflow-macos
to the optional add-on list (#31)
[0.15.14] - 2022-01-23
Added
added a str representation for the
SeriesTransformer
objectadded
exclude_models
argument toSeriesTransformer.Revert()
and similar functions
Changed
Fixed
cleaned up some documentation links
[0.15.12] - 2022-12-12
Added
Changed
fill N/A for all forecasts with a forward fill to prevent some max-value errors, both when forecasting and reverting transformations
Fixed
[0.15.11] - 2022-12-06
Added
Changed
Fixed
fixed exception catching in
Forecaster.auto_Xvar_select()
andutil.find_optimal_transformation()
[0.15.10] - 2022-12-05
Added
added
dayofyear
to search for inForecater.auto_Xvar_select()
when frequency is daily or lower.added
cycle_lens
argument toForecaster.add_seasonal_regressors()
.
Changed
Fixed
fixed how seasonalities are selected when they are not Fourier transformed in
Forecaster.auto_Xvar_select()
.
[0.15.9] - 2022-11-03
Added
Changed
Fixed
fixed getting cis with backtesting. only the first backtest iteration was being used.
[0.15.8] - 2022-11-02
Added
added
method
argument toForecaster.reeval_cis()
andMVForecaster.reeval_cis()
and included an option to get confidence intervals through backtesting.added
Forcaster.plot_backtest_values()
.
Changed
changed some error messages to be more descriptive and to encourage raising issues on github.
changed how level confidence intervals are obtained when calling
SeriesTransformer.DiffRevert()
to be more efficient.the backtest_values DataFrame now includes dates in
Forecaster
andMVForecaster
. the order of the dataframe is Date –> Actuals –> Preds for all iterations.
Fixed
[0.15.7] - 2022-10-28
Added
Changed
changed
dynamic_testing = <int>
to same way it was in 0.12.8 when it was introduced because it gives better and more efficient results in bothForecaster
andMVForecaster
.
Fixed
[0.15.6] - 2022-10-25
Added
Changed
the
m
argument inutil.find_optimal_transformation
can be a list and multiple seasonal differences can be tried in that functionchanged how level plotting is peformed in
Forecaster.plot()
andForecaster.plot_test_set()
Fixed
fixed how history[‘LevelY’] attribute is undifferenced in
SeriesTransformer
, which was causing plots to be incorrect.
[0.15.5] - 2022-10-22
Added
added the
Pipeline.MVPipeline
object.
Changed
Fixed
[0.15.4] - 2022-10-21
Added
Changed
Fixed
changed where import calls occur in the
SeriesTransformer
module to avoid a circular import that can happenadded
AttributeError
to the list of exceptions to catch inutil.find_optimal_transformations()
function.fixed initiating MVForecaster() when
merge_Xvars=='i'
.
[0.15.3] - 2022-10-20
Added
increased documentation around forecasting different model types.
Changed
‘LevelY’ passed to history in
util.break_mv_forecaster()
changed the optional dependency
pip intall fbprophet
topip install prophet
(#18)
Fixed
added
IndexError
to the list of exceptions to catch inutil.find_optimal_transformations()
function.convert values in
**kwargs
fromnumpy.bool_
tobool
type when forecasting with HWES (#19).
[0.15.2] - 2022-10-19
Added
added the
util.find_optimal_transformation()
function.
Changed
changed setup.py so that version needs to be added manually to make an update (#16).
Forecaster.integrate()
now has**kwargs
that are passed toForecaster.adf_test()
.changed some data processing in
SeriesTransform.DiffRevert()
to accomodate a future change from pandas.changed the name of
util.find_series_transformation()
toutil.find_statistical_transformation()
. this function is new as of 0.15.0 so hopefully it has not been adopted widely yet and this change doesn’t cause issues for users.added a try/except wrapper around the
self.f.typ_set()
code inSeriesTransformer.DetrendTransform()
Fixed
drops null values before running though
Forecaster.normality_test()
.changed the import in
util
tofrom scalecast import Pipeline
as theutil.find_series_transformation()
was not working because of it.
[0.15.1] - 2022-10-18
Added
added the
SeriesTransformer.DetrendTransform()
andSeriesTransformer.DetrendRevert()
functions.
Changed
Fixed
all reverter functions in
SeriesTransformer
revert level confidence intervals.
[0.15.0] - 2022-10-17
Added
added the
Pipeline
module.added
util.find_optimal_series_transformation()
added
Forecaster.normality_test()
function
Changed
changed the default
full_res
arg inForecaster.adf_test()
toTrue
changed links to some model documentation in readme
Fixed
[0.14.8] - 2022-10-14
Added
added
must_keep
arg toForecater.auto_Xvar_select()
.added
SeriesTransformer.SqrtTransform()
andSeriesTransformer.SqrtRevert()
functions.
Changed
two-level differencing no longer natively supported in
Forecaster
andMVForecaster
. it’s too much work to maintain two differencing and it is also supported more efficiently and dynamically through theSeriesTransformer
object and that is available for who needs it.this changed the arguments in the following functions:
changed accepted values that can be passed to the
probabilistic
arg in theForecaster.tune_test_forecast()
,MVForecaster.tune_test_forecast()
, andnotebook.tune_test_forecast()
functions so that some models can be forecasted probabilistically and others don’t have to be (speeds up processing time generally).
Fixed
issues with second-differencing have all been resolved since second differencing is no longer supported natively in the
Forecaster
object.took out
revert_fvs
fromSeriesTransformer.DiffRevert()
function because it hasn’t been working.
[0.14.7] - 2022-10-05
Added
Changed
Fixed
added
trend_estimator_kwargs
to theForecaster.auto_Xvar_select()
function to avoid an error that occurs when mixing estimators and not using default hyperparameters
[0.14.6] - 2022-10-03
Added
Changed
changed the default figsize for all plotting functions to (12,6).
Fixed
[0.14.5] - 2022-09-30
Added
Changed
added
figsize
argument innotebook.results_vis()
andnotebook.results_vis_mv()
Fixed
[0.14.4] - 2022-09-23
Added
added the tf_model attribute to the
Forecaster
object for users to access and save rnn and lstm models (#12)added
figsize
arg to all forecast plotting methods inForecaster
andMVForecaster
added a link to the M4 example in the readme
Changed
Fixed
took out the
freq
argument fromauxmodels.vecm
(which was being set automatically) since it is optional when dates are passed and was causing frequencies that statsmodels does not recognize to fail (#13)
[0.14.3] - 2022-09-16
Added
util.pdr_load()
now accepts multiple series and returns an MVForecaster object of everything loaded togetheradded more arguments to the
util.pdr_load()
functionadded
auxmodels.vecm
model, which is a model class that can be imported using theMVForecaster.add_sklearn_estimator()
function (#11)modified the source code in the
MVForecaster
object to accomodate new model classes (e.g. vecm)added a vecm grid to the example grids
added the
util.find_optimal_coint_rank()
andutil.find_optimal_lag_order()
functions
Changed
changed scaling syntax in
Forecaster
andMVForecaster
to circumvent a warning having to do with feature names–only numpy arrays are scaled now (not dataframes)
Fixed
added a call of
Forecaster.Forecaster.typ_set()
right afterMVForecater.__init__()
, before chopping dates to fix weird loading errors that occured once in a whilefixed the util function that wasn’t working in 0.14.2 and yanked that release. everything scheduled for 0.14.3 will now be part of 0.14.4.
[0.14.1] - 2022-09-09
Added
if there are not enough observations to use in cross validation (usually because too many AR terms were added), an error is raised when calling the
Forecater.cross_validate()
andMVForecaster.cross_validation()
functions
Changed
no
Forecaster.auto_Xvar_select()
no longer raises errors if more AR terms passed to max_ar argument than the model is able to estimate
Fixed
Forecaster.determine_best_series_length()
will no longer fail if the min_obs arg value is greater than the amount of observations in the seriesfound more instances where
TypeError
s should not be raised (such as passing anint64
type whenint
is required)fixed an issue that occurs after selecting Xvars with
Forecaster.auto_Xvar_select()
on an integrated series then loading toMVForecaster
fixed the error raised when 0 or less is passed to the
Forecaster.set_validation_length()
andMVForecaster.set_validation_length()
functions
[0.14.0] - 2022-08-31
Added
added the
Forecaster.auto_Xvar_select()
methodadded a check for NAs in
Forecaster
andMVForecaster
when evaluating grids and validation metric is mape. a descriptive error is raised if NAs are found (#10)added
Forecaster.drop_all_Xvars()
added
Forecaster.determine_best_series_length()
added
Forecaster.restore_series_length()
Changed
removed deprecated functions identified and labeled in 0.13.1
Forecaster.keep_smaller_history()
can now accept numpy int types as an argument.
Fixed
[0.13.11] - 2022-08-19
Added
added grids_file attribute to
Forecaster
andMVForecaster
objects, as well asset_grids_file()
method to both objects.
Changed
Fixed
[0.13.10] - 2022-08-15
Added
added probabilistic argument option to
auxmodels.mlp_stack()
function.added Xvars argument to
auxmodels.auto_arima()
function.
Changed
made it so that an error is raised earlier when using
Forecaster.ingest_Xvars_df()
incorrectly.
Fixed
fixed an issue with
auxmodels.mlp_stack()
where**kwargs
were not being passed correctly.
[0.13.9] - 2022-08-11
Added
added error arg to
Forecaster.tune_test_forecast()
andMVForecater.tune_test_forecast()
methods.
Changed
took out an error check that was redundant and not even working
Fixed
fixed some documentation syntax for new objects added last dist
[0.13.8] - 2022-08-08
Added
added
auxmodels
module withauto_arima()
andmlp_stack()
functionsadded pmdarima as an optional requirement to make auto_arima work
added
util.metrics
classadded
Forecaster.reeval_cis()
andMVForecaster.reeval_cis()
methods
Changed
Fixed
[0.13.6] - 2022-08-04
Added
added
error
argument to theForecaster.diff()
method
Changed
took out the error that’s raised when trying to add AR terms after data has already been differenced using
Forecaster.add_AR_terms()
Fixed
fixed an issue with
util.break_mv_forecaster
that was caused from addingfuture_dates
arg toForecaster.__init__()
method
[0.13.5] - 2022-08-03
Added
added optional
future_dates
arg toForecaster.__init__()
methodadded
error
argument to theForecaster.drop_Xvars()
andForecaster.drop_regressors()
methods
Changed
changed
SeriesTransformer
scaling functions to use only training data iftrain_only=True
.took out the error that’s raised when trying to add AR terms after data has already been differenced
Fixed
fixed an issue with the
notebook.tune_test_forecast()
functionMVForecaster
no longer takes AR terms whenmerge_Xvars = 'u'
fixed an issue where
util.break_mv_forecaster
was not converting xreg dict correctly
[0.13.4] - 2022-07-29
Added
added
util.pdr_load()
function.added
limit_grid_size
as an argument toForecaster.tune_test_forecast()
,MVForecaster.tune_test_forecast()
, andnotebook.tune_test_forecast()
to support randomized grid search through this process.
Changed
changed dynamic window forecasting loop
if trying to cross validate with less data than it is possible to create the correct-sized folds for, the program will no longer raise an error but instead pass default parameters to the
best_params
attribute and log a warning.made cross validation slightly more efficient
Fixed
changed some source code to reduce the amount of
TypeError
s a user is likely to get (such as passingint.64
type whenint
type is required)
[0.13.3] - 2022-07-27
Added
Changed
SeriesTransformer.diffrevert()
now supports an argumentrevert_fvs
, which isTrue
by default. since adding level cis, this is now possible.
Fixed
fixed an issue that caused model evaluation to fail if models were not tuned from the grid successfully. this was an issue since 0.12.3 due to how cross validation changed tuning.
[0.13.2] - 2022-07-24
Added
Changed
Fixed
Fixed an issue from 0.13.1 that was caused by running models
test_only = True
on integrated series.
[0.13.1] - 2022-07-24
Added
added level fitted values and default level confidence intervals for all models called through
Forecaster
andMVForecaster
.
Changed
deprecated several export functions and rewrote
Forecaster.export()
andMVForecaster.export()
to allow confidence intervals whencis=True
. all deprecated functions should log a FutureWarning and will be removed in 0.14.0. all of these functionalities are now dupliated inForecaster.export()
andMVForecaster.export()
Forecaster.export_test_set_preds_with_cis()
Forecaster.export_test_set_preds_with_cis()
MVForecaster.export_model_summaries()
MVForecaster.export_forecasts()
MVForecaster.export_test_set_preds()
MVForecaster.export_level_forecasts()
MVForecaster.export_level_test_set_preds()
made shap an optional add-on due to some installation issues by some users
Fixed
notebook.tune_test_forecast()
was missing an argument in the functionfixed an issue with
MVForecaster.backtest()
causing some models to return a key error when backtestedfixed an issue where
'ValidationMetricValue'
could not be passed toMVForecaster.set_best_model(determine_best_by)
[0.13.0] - 2022-07-19
Added
added probabilistic forecasting through
Forecaster.proba_forecast()
andMVForecaster.proba_forecast()
methodsadded level confidence intervals always for models run at level (so it won’t fail to generate cis anymore when passing
Forecaster.plot(ci=True,level=True)
)probabilistic forecasting also makes it possible to derive level confidence intervals even when model was run at difference
added probabilistic as a
bool
argument toForecaster.tune_test_forecast()
,MVForecaster.tune_test_forecast()
, andnotebook.tune_test_forecast()
functions
Changed
changed how it was determined that a model was tuned for efficiency gains
changed so that “Dynamically” does not appear in the history[‘tuned’] attribute
changed the error that is raised when reduce_Xvars() doesn’t work due to feature importance not being supported by a given model so that it is more explicit
changed the default mlp grid so that random_state is no longer a value. this makes that model more ammenable to probabilistic forecasting
Fixed
[0.12.9] - 2022-07-15
Added
added
suffix
argument toForecaster.tune_test_forecast()
,MVForecaster.tune_test_forecast()
, andnotebook.tune_test_forecast()
functions (#5)added
fi_method
argument tonotebook.tune_test_forecast()
function
Changed
Fixed
[0.12.8] - 2022-07-11
Added
added
AnomalyDetector.MonteCarloDetect_sliding()
method
Changed
changed the
dynamic_testing
anddynamic_tuning
arguments inForecaster
andMVForecaster
so that window forecast evaluation is now supported. now, instead of having the choice between 1-step and arbitrary multi-step forecasting, any integer value is accepted as arguments in those parameters butTrue
andFalse
are still supported and do the same thing as always.
Fixed
[0.12.7] - 2022-07-08
Added
Changed
got rid of printing when calling
ChangepointDetector.WriteCPtoXvars()
Fixed
fixed cross validation when
Xvars = 'all'
is passed as an argument
[0.12.6] - 2022-07-06
Added
added the
ChangepointDetector
objectadded the
AnomalyDetector.adjust_anom()
method
Changed
Fixed
fixed last index span from
AnomalyDetector.MonteCarloDetect()
[0.12.5] - 2022-07-01
Added
added
jump_back
parameter inForecaster.backtest()
andMVForecaster.backtest()
methodsadded the theta model from darts
Changed
changed how dataframes are grouped in the
cross_validate()
method. turned sorting off to prevent some failures, specifically in the theta model
Fixed
[0.12.4] - 2022-06-28
Added
Changed
changed how shap feature scores are sorted in reduce Xvars, no adjustment needed like with PFI
Fixed
[0.12.3] - 2022-06-27
Added
added shap feature importances in addition to pfi by allowing user to select method = ‘shap’ when calling
Forecaster.save_feature_importance()
added shap library to dependencies list
added
SeriesTransformer
classadded
AnomalyDetector
classadded function to util that breaks an
MVForecaster
class into several objects ofForecaster
classcan now init
Forecaster
object withrequire_future_dates = False
. when using False, the object will not forecast into future dates and will not make you know values into the future for regressors passed throughForecast.ingest_Xvars_df()
.
Changed
took the ‘per’ key out of the history attribute
changed the order of some of the source code to be more efficient (very small gains)
changed the size of the dataset that pfi feature importance is called on to make it include all values previously seen by any given model passed to it. before, it sliced off the last couple observations only – this was more or less a mistake but I don’t expect results will be affected significantly for anyone using
reduce_Xvars()
due to how features are sorted in that function.changed the
Forecaster.reset()
function so that it returns a true copy of the initiated object.in
Forecaster.save_feature_importance()
, added theon_error
arg to raise errors if the user prefers. The default is still to log errors as warnings so as not to break loops.
Fixed
test_only
was not working with the lstm estimator, so fixed thatfixed an issue where the function didn’t ignore the argument passed to
estimator
withreduce_Xvars(method='l1')
[0.11.2] - 2022-06-20
Added
Changed
Fixed
fixed an issue where
None
wasn’t being accepted in grid with'Xvars'
as the key and usingcross_validate()
(#2)
[0.11.1] - 2022-06-15
Added
Changed
changed how the validation set length is calculated in history attributed – given na value if cross validation used to tune models
Fixed
fixed an issue caused by None values in hyperparam grids being changed to np.nan and therefore not accepted in some functions after cross validation has been called
[0.11.0] - 2022-06-14
Added
added
cross_validate()
methods toForecaster
andMVForecaster
objects, which can now be used for the same purposes astune()
but with cross validationadded
cross_validate
as a (bool) argument to theForecaster.tune_test_forecast()
,Forecaster.reduce_Xvars()
,MVForecaster.tune_test_forecast()
, andnotebook.tune_test_forecast()
functionsadded “CrossValidated” key to history dict in
Forecaster
andMVForecaster
objects
Changed
if np.nan is passed as a normalizer value, it will convert to None so that it can be used
Fixed
[0.10.5] - 2022-06-07
Added
Changed
Fixed
fixed the
set_best_model()
method inMVForecaster
, which was broken due to not being able to parse new updates from 0.10.1
[0.10.4] - 2022-06-05
Added
Changed
Fixed
sorting from pfi variable reduction method was incorrect after initial variable drop, causing the wrong sequence of variables to be dropped when method = ‘pfi’
[0.10.3] - 2022-06-05
Added
added lasso and ridge as default estimators and gave them default grids for both
Forecaster
andMVForecaster
added
reduce_Xvars()
method toForecaster
objectadded
util
module with one function (for now) to plot error changes from calling theForecaster.reduce_Xvars()
method
Changed
Changed default hyperparameter grid values for knn, xgboost, and lightgbm estimators
Fixed
[0.10.2] - 2022-05-17
Added
Changed
Changed where logs are called back to when importing library due to warnings that don’t get logged when unpickling object
Fixed
[0.10.1] - 2022-05-16
Added
MVForecaster.set_optimize_on()
now accepts user functions (like weighted averages) by leveraging newMVForecaster.add_optimizer_func()
function
Changed
Suppressed future warnings on import because of a pandas warning caused from importing LightGBM. If LightGBM does not fix this issue with an update, we might need to pull it from the default list of sklearn estimators; users would still be able to use LightGBM by importing it manually.
Fixed
[0.10.0] - 2022-05-13
Added
added permutated feature dataset to history for sklearn models with feature importance
Changed
changed some pandas syntax to avoid some warnings
permutation feature importance applied on test set only and works better on models run
test_only = True
Fixed
fixed the order in which Xvars are parsed, which was causing issues when Xvar names were added in a function in a different order than they appeared in the object
[0.9.9] - 2022-05-12
Added
Changed
warning logs now called after
Forecaster
andMVForecaster
objects are initiatedNo more
get_funcs()
method, a bad idea from the start
Fixed
[0.9.8] - 2022-05-11
Added
added the
corr()
andcorr_lags()
methods to theMVForecaster
object
Changed
Fixed
[0.9.7] - 2022-05-10
Added
Changed
Fixed
fixed an issue where
MVForecaster
was not generating the correct forecast horizon worth of values for models run with lags only (no seasonality or trends)
[0.9.6] - 2022-05-06
Added
Changed
got rid of printing when calling silverkite
Fixed
fixed an issue with ARIMA where it didn’t work if no Xvars had been added first
[0.9.4] - 2022-04-29
Added
Changed
Fixed
fixed an issue where data types get changed from int to float when grid searching
[0.9.2] - 2022-04-29
Added
Added
SGDRegressor
from sklearn as a default estimator (sgd)
Changed
Changed “backcast” nomenclature to “backtest”, which is what it really is (oops!)
Fixed
[0.9.1] - 2022-04-21
Added
Changed
Fixed
fixed an issue in ARIMA model where future x regressors weren’t being read correctly
fixed an issue where
save_feature_importance()
was throwing an error sometimes
[0.9.0] - 2022-04-15
Added
added
backcast()
method toForecaster
andMVForecaster
objectsadded
copy()
anddeepcopy()
methods to the same objectsadded
test_only
options to all models inForecaster
. ignored in combo models. a future dist will have this forMVForecaster
added
plot_loss_test
as arg in lstm and rnn modelsadded
notebook.results_vis_mv()
function
Changed
Fixed
[0.8.4] - 2022-04-11
Added
Changed
changed how names are looked for in the
MVForecaster
object
Fixed
[0.8.3] - 2022-04-05
Added
Changed
Fixed
fixed an issue when plotting in MVForecaster that occurs when you didn’t initially pass names to
__init__()
fixed an instance where labels was spelled wrong
[0.8.1] - 2022-04-04
Added
Changed
Fixed
Fixed inconsistent indexing in MVForecaster that was causing some models to fail when different Forecaster objects’ dates didn’t align
Fixed an issue where
level=True
wasn’t working inplot_test_set()
sometimes
[0.8.0] - 2022-04-03
Added
Added more description to the
MVForecaster.__repr__()
method
Changed
Changed arguments in the rnn estimator to make it more flexible and dynamic
Fixed
[0.7.6] - 2022-03-30
Added
Changed
Fixed
Noticed an error when forecasting with Silverkite on differenced data and fixed it.
[0.7.5] - 2022-03-28
Added
Changed
Fixed
MVForecaster.plot()
wasn’t working after a recent update, fixed now
[0.7.4] - 2022-03-28
Added
Changed
Fixed
MVForecaster.export()
wasn’t working after last update, fixed now
[0.7.3] - 2022-03-28
Added
Changed
changed “BestModel” key in MVForecaster.export() method to “best_model” to be consistent with Forecaster notation
Fixed
was calling the wrong function when the series weren’t the same length in the
MVForecaster.__init__()
methodfixed
MVForecaster.set_optimize_on()
so that it accepts “mean” as an argument without error
[0.7.2] - 2022-03-25
Added
Changed
Fixed
MVForecaster wasn’t combining xvars with AR terms correctly
MVForecaster wasn’t plotting some series correctly
MVForecaster wasn’t making copies of arrays in dictionaries when copying xvars
[0.7.1] - 2022-03-24
Added
added the MVForecaster object for multivariate vector forecasting
added mv_grids to GridGenerator, which is written out to working directory as MVGrids (due to the added “lags” arg)
added
multiseries.keep_smallest_first_date()
function to make the series of multiple Forecaster objects the same lengths
Changed
Fixed
[0.7.0] - 2022-03-18
Added
added the
add_cycle()
method for identification of irregular cycles
Changed
Fixed
[0.6.9] - 2022-03-15
Added
Changed
Fixed
fixed the default hidden_layers_type arg in
_forecast_rnn()
[0.6.8] - 2022-03-15
Added
Changed
Fixed
fixed the rnn estimator which was using a dict to set hidden layers without unique keys, causing all layers except the last to be ignored, so all rnns were returning one layer results. Now the args in that function are different, but tested and it works to add more layers.
[0.6.7] - 2022-03-07
Added
added
N_actuals
to__repr__()
function
Changed
Took pt normalizer out of all example grids since it still errors out sometimes without being obvious why
notebook.results_vis()
no longer prints anything and automatically sets the plot title insteadForecaster.set_test_length()
now accepts fractional splits
Fixed
[0.6.6] - 2022-02-28
Added
added the
add_sklearn_estimator()
function so a user can add any sklearn regression model to forecast with.
Changed
Fixed
some of the examples weren’t plotting correctly after recent updates.
[0.6.4] - 2022-02-25
Added
added residuals to the function
export_fitted_vals()
. Now gives dates, actuals, fitted vals, and residualsadded
multiseries.export_model_summaries()
function
Changed
Fixed
notebook.results_vis()
broke after last update and has now been fixed
[0.6.2] - 2022-02-25
Added
Changed
the
plot()
,plot_test_set()
, andplot_fitted()
functions now return figures instead of automatically plotting for you. This means more customization is now possible. Took outto_png
and related args from these functions since that can be done now with matplotlib
Fixed
changed the insample metric evaluations for RNN and LSTM to be on the full training set instead of just the last few observations.
[0.6.1] - 2022-02-23
Added
Changed
Fixed
fixed an issue when calling RNN or LSTM models after a combo model that saved attributes of the combo model illogically in history
fixed an issue that caused test-set evaluation of ARIMA models to be inaccurate (causing severe underperformance)
[0.6.0] - 2022-02-09
Added
Added drop argument to several adder functions, giving the user the option to drop the original regressors after making certain transformations on them
Changed
add_ar_terms()
now accepts 0 as an argument but it doesn’t do anything
Fixed
fixed issue with
pop_using_criterion()
function that wasn’t dropping models correctly in some instancesfixed the default parameters for the rnn model which weren’t working due to mislabeling of one of the parameters in TensorFlow. updated the docstring accordingly
[0.5.9] - 2022-02-01
Added
Added CurrentEstimator to
__repr__()
function.
Changed
Fixed
Made it impossible to forecast without adding future dates first
[0.5.8] - 2022-01-27
Added
Changed
Made it impossible to pass tune argument to
manual_forecast()
Fixed
Fixed results_vis in notebook (wasn’t displaying one of the widgets)
[0.5.7] - 2022-01-26
Added
Changed
Cleaned up a lot of documentation
Fixed
Fixed links in readme
[0.5.6] - 2022-01-25
Added
Added documentation on Read the Docs
Added cilvel information to export functions
Changed
Fixed
[0.5.5] - 2022-01-20
Added
Added CILevel info to export model_summaries function
Changed
Fixed
Fixed an issue where plots were diplaying incorrect confidence levels if
cilevel
had been changed since training it
[0.5.4] - 2022-01-20
Added
Added the rnn estimator
Changed
plot_loss argument no longer considered a hyperparameter value for LSTM and RNN models
Fixed
Fixed an issue where “==” wasn’t being accepted in the
evaluated_as
argument in thepop_using_criterion()
functionScaler in history saved as ‘minmax’ instead of None for LSTM and RNN models
[0.5.3] - 2022-01-18
Added
EvaluatedModels to
__repr__()
Changed
Does not call
infer_freq()
as often, making code more efficient
Fixed
sometimes the attribute
ci_bootstrap_samples
was being calledbootstrap_samples
, changed everything tobootstrap_samples
only
[0.5.2] - 2022-01-12
Added
Changed
Fixed
Fixed an error that occured when calling the
__repr__()
method if no models had been evaluated first
[0.5.1] - 2022-01-12
Added
Added
export_fitted_vals()
functionAdded ci option to the
results_vis()
function in notebookAdded the
get_funcs()
function
Changed
No
Xvars
in LSTM model, changed to lags (now model will only look at its own history)No
normalizer
in LSTM model (always uses a minmax scaler now)LSTM model can no longer be tuned
Got rid of all lstm model grids
changed
__str__()
and__repr__()
so that they now offer better info
Fixed
Fixed the LSTM model by scaling the dependent variable and unscaling it (minmax) when it comes out and getting rid of other Xvars
[0.5.0] - 2022-01-10
Added
Added confidence intervals using bootstrapping
set_cilvel()
function (default .95)set_bootstrap_samples()
function (default 100)
Added
ci
parameter toplot()
andplot_test_set()
functionAdded UpperCI, LowerCI, TestSetUpperCI, TestSetLowerCI keys to history dict
Added
export_forecasts_with_cis()
andexport_test_set_preds_with_cis()
functionsAdded source code (commented out) to get level confidence intervals – when I tested, the intervals were too large to implement but maybe in the future this will be revisited
Changed
Fixed
[0.4.4] - 2022-01-07
Added
added lstm grid in example grids
added EarlyStopping callback functionality for the LSTM model
added
get_expanded_lstm_grid()
to GridGenerator module which gives an example of a grid with early stopping
Changed
changed default paramaters for the lstm model
added
**kwargs
to the lstm model forecast function that are passed to thefit()
function in TensorFlow, got rid ofepochs
andbatch_size
args consequently
Fixed
[0.4.25] - (quick fix) 2022-01-06
Added
Changed
Fixed
source code was using
f
instead ofself
when when callingpop_using_criterion()
[0.4.2] - 2022-01-06
Added
lstm estimator
added
pop_using_criterion()
function
Changed
Fixed an issue where sklearn models were being fit on the same data twice – does not change outcomes but the models run faster now
Output from
_scale()
function is now always a numpy matrix (could have been either that or pandas dataframe before)sorted
_estimators_
listchanged the error message for when importing a grid fails to account for one other possible reason the failure occured
Fixed
[0.4.1] - 2021-12-30
Added
Can now sort by metric value in
export_all_validation_grids_to_excel()
Changed
Fixed
Fixed an issue where sometimes the incorrect AR terms were being propogated for test-set evaluation only
[0.4.0] - 2021-12-30
Added
Changed
deleted the ‘scale’ normalizer from the mlp grid
Fixed
Fixed an issue with the PowerTransformer normalizer that failed because of a DivideByZero error, now defaults to a StandardScaler when this issue is encountered and logs a warning
[0.3.9] - 2021-12-30
Added
Added
init_dates
andlevely
attributesAdded
'Observations'
info to history andexport()
Added
'lvl_test_set_predictions'
to export dataframes
Changed
Got rid of
first_obs
andfirst_dates
attributes and wrote more efficient code to do what they were there forMore information available when
__str__()
is called
Fixed
Fixed what became an issue with the last update in which when calling
add_diffed_terms()
oradd_lagged_terms()
, the level series wasn’t accurate due to how undifferencing was being executed. After examining this issue, it became evident that the previous way to undifference forecasts was less efficient than it should have been, this update fixed the issues from the last update and made the code more efficientFixed an issue where AR terms were manipulating the underlying xreg structures so that each forecast were using its own test-set propogated AR values instead of the correct AR values
Fixed the
export_Xvars_df()
method which wasn’t working correctly if at least one forecast hadn’t been called first
[0.3.8] - 2021-12-29
Added
added the following functions that can each add additional Xvars to forecast with:
add_exp_terms()
- for non polynomial exponential transformationsadd_logged_terms()
- for log of any base transformationsadd_pt_terms()
- for individual variable power transformations (box cox and yeo johnson available)add_diffed_terms()
- to difference non-y termsadd_lagged_terms()
- to lag non-y terms
added the ‘pt’ normalizer for yeo-johnson normalization (in addition to ‘minmax’, ‘normalize’, and ‘scale’)
added the
drop_Xvars()
function that is identical to thedrop_regressors()
function
Changed
imports all sklearn models as soon as scalecast is imported
src code cleanup with better coding practices when it comes to forecasting sklearn models (no more copying and pasting new functions)
changed several set data types to lists in src code
changed the names of some hidden functions
other src code cleanup for readability and minor efficiency gains
better in-line comments and docstring documentation
got rid of quiet paramater in
save_summary_stats()
andsave_feature_importance()
and now these simply log any problems as warningstime trends now start at 1 instead of 0 (makes log transformations possible)
observation dropping for AR terms in sklearn models now based on the number of N/A values in each AR term instead of just the AR number
changed some example grids to include the pt normalizer
Fixed
now logs all warnings
[0.3.7] - 2021-12-27
Added
dynamic_testing
argument tomanual_forecast()
andauto_forecast()
functions – this isTrue
by default (makes all testing comparable between sklearn/non-sklearn models)dynamic_tuning
argument totune()
function – this isFalse
by default to majorly improve speed in some applications
Changed
native Forecaster warnings will be logged
Fixed
[0.3.6] - 2021-12-14
Added
added
tune_test_forecast()
function to notebook module to create a progress bar when using a notebook
Changed
Fixed
fixed an issue with
Forecaster.ingest_Xvars_df()
whenuse_future_dates=False
causing an error to be raised
[0.3.5] - 2021-12-07
Added
added
include_traing
parameter tonotebook.results_vis()
function
Changed
Fixed
fixed
print_attr
parameter default innotebook.results_vis()
[0.3.4] - 2021-12-07
Added
added
results_vis()
notebook function (requires ipywidgets)added
Forecaster.export_Xvars_df()
functionadded
max_integration
argument to theForecaster.integrate()
function
Changed
Fixed
[0.3.3] - 2021-11-26
Added
Changed
Now reloads Grids file each time
ingest_grid()
is called so that notebooks do not have to be rerun when a grid cannot be found
Fixed
Fixed an issue with some sklearn estimators that occurs when passing a subset of regressors in a list to the forecast function
[0.3.2] - 2021-11-01
Added
Changed
Fixed
Found an issue when using
floor
in Prophet
[0.3.1] - 2021-10-29
Added
Added the eCommerce example
In
limit_grid_size()
, users can now set random_seed parameter for consistent results
Changed
Fixed
Scikit-learn models were not accepting
Xvars='all'
as an argumentsFixed an issue causing models run at different levels to error out sometimes when plotted
Fixed a plotting error that occured sometimes when setting models parameter to
None
[0.3.0] - 2021-10-15
Added
Added an option to save to png in plot(), plot_test_set(), and plot_fitted() methods using plt.savefig() from matplotlib and calling with
to_png = True
Changed
Made errors more descriptive, stripping out AssertionError types
Fixed
fixed typos in doc strings
[0.2.9] - 2021-09-27
Added
Changed
In plot() method,
models=None
is now accepted and will plot only actual valuesExample grids are modified to prevent overfitting in some models
Fixed
Fixed the add_time_trend() method to not skip a time step in the first observation
[0.2.8] - 2021-08-27
Added
Added a descriptive error when all_feature_info_to_excel() or all_validation_grids_to_excel() fails
Changed
Using pd.shift() instead of np.roll() to create AR terms to avoid further issues with AR terms
Prophet, silverkite, and ARIMA have better Xvar validation mechanisms to ensure that autoregressive terms aren’t fed to them, which could cause errors and doesn’t add anything to the models that isn’t already built into them. Now, even if a user tries to feed AR terms only, it will pass no Xvars to these models
Fixed
AR terms were not dropping the correct first observations before being estimated with SKLEARN models, so we fixed that but it didn’t seem to make a noticeable difference in any of the examples
[0.2.7] - 2021-08-20
Added
added reset() function that deletes all regressors and resets the object to how it was initiated
added documentation and hints in the source code
Changed
changed readme documentation to be more concise
Fixed
in the documentation, it was stated that the ‘scale’ value passed to the ‘normalize’ parameter when calling manual_forecast() or auto_forecast() would use a StandardScaler from sklearn, but a Normalizer was actually being applied. Now, you can pass ‘scale’ to get the StandardScaler, ‘normalize’ to get the Normalizer, or ‘minmax’ to get the MinMaxScaler (unchanged from previous distributions). ‘minmax’ is still the default for all estimators that accept this argument
[0.2.6] - 2021-08-12
Added
added train_only argument to following functions to reduce data leakage in eda/preprocessing steps: integrate, adf_test, plot_acf, plot_pacf, plot_periodogram, seasonal_decompose – default argument is still False for these. Now it is suggested to set a test length before running any one of these methods and only examine the training set correlations to prevent data leakage
Changed
Fixed
[0.2.5] - 2021-08-09
Added
added integrate() method that can be used to automatically find the series appropriate level to achieve stationarity, according to augmented dickey fuller test
Changed
Fixed
[0.2.4] - 2021-08-03
Added
added tune_test_forecast() function that allows what used to take four lines to be aggregated into one, also allows more easy saving of feature information by setting feature_importance or summary_stats parameters to True
added all_feature_info_to_excel() function
added all_validation_grids_to_excel() function
Changed
Fixed
removed a duplicate column from the dataframe created when calling the export() method
[0.2.3] - 2021-07-19
Added
Changed
changed removed pandas-datareader from imports in setup.py since it is not a package dependency (change having to do with installation only and should not affect anything when applying the library)
Fixed
[0.2.2] - 2021-07-16
Added
added GridGenerator module so user can more easily create grids in working directory
Changed
changed all functions with diffy parameter (plot_acf, plot_pacf, seasonal_decompose) now accept True, False, 0, 1, or 2 as possible values
Fixed
fixed issues with two-level undifferencing where it was adding values exponentially because the level was being added to the first and second-level differences
fixed issues with two-level undifferencing where dates were being mixed up
fixed issues with one-level test-set evaluation where the incorrect initial value was set to undifference values in the test-set only, causing miscalculation of metrics, although the bias was in both directions so when rerunning avocados.ipynb, for example, the results were virtually the same with different models now outperforming others but metrics remaining more or less the same on average; forecasted values did not change
[0.1.9] - 2021-07-09
Added
added lightgbm and silverkite as estimators
Changed
changed ‘which’ parameter in set_valiation_metric() to ‘metric’ for clarity
changed ‘which’ parameter in set_estimator() to ‘estimator’ for clarity
Fixed
[0.1.8] - 2021-07-05
Added
Changed
Fixed
fixed an error in combo modeling that was causing incorrect applications of weights in weighted averaging – the weights were generating correctly but not being applied to the best-performing models in the correct order