All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Add columns and mode parameters in plot_correlation_matrix (#726)
- Add CatBoostPerSegmentModel and CatBoostMultiSegmentModel classes, deprecate CatBoostModelPerSegment and CatBoostModelMultiSegment (#779)
- Make LagTransform, LogTransform, AddConstTransform vectorized (#756)
- Update poetry.core version (#780)
- Make native prediction intervals for DeepAR (#761)
- Make native prediction intervals for TFTModel (#770)
- Test cases for testing inference of models (#794)
- Fix missing prophet in docker images (#767)
- Add
known_future
parameter to CLI (#758) - FutureWarning: The frame.append method is deprecated. Use pandas.concat instead (#764)
- Correct ordering if multi-index in backtest (#771)
- Github actions cache issue with poetry update (#778)
- Add Sign metric (#730)
- Add AutoARIMA model (#679)
- Add parameters
start
,end
to some eda methods (#665) - Add BATS and TBATS model adapters (#678)
- Jupyter extension for black (#742)
- Change color of lines in plot_anomalies and plot_clusters, add grid to all plots, make trend line thicker in plot_trend (#705)
- Change format of holidays for holiday_plot (#708)
- Make feature selection transforms return columns in inverse_transform(#688)
- Add xticks parameter for plot_periodogram, clip frequencies to be >= 1 (#706)
- Make TSDataset method to_dataset work with copy of the passed dataframe (#741)
- Fix bug when
ts.plot
does not save figure (#714) - Fix bug in plot_clusters (#675)
- Fix bugs and documentation for cross_corr_plot (#691)
- Fix bugs and documentation for plot_backtest and plot_backtest_interactive (#700)
- Make STLTransform to work with NaNs at the beginning (#736)
- Fix tiny prediction intervals (#722)
- Fix deepcopy issue for fitted deepmodel (#735)
- Fix making backtest if all segments start with NaNs (#728)
- Fix logging issues with backtest while emp intervals using (#747)
- Remove parameter normalize in linear models (#686)
- Add missed
forecast_params
in forecast CLI method (#671) - Add
_per_segment_average
method to the Metric class (#684) - Fix
get_statistics_relevance_table
working with NaNs and categoricals (#672) - Fix bugs and documentation for stl_plot (#685)
- Fix cuda docker images (#694])
Width
andCoverage
metrics for prediction intervals (#638)- Masked backtest (#613)
- Add seasonal_plot (#628)
- Add plot_periodogram (#606)
- Add support of quantiles in backtest (#652)
- Add prediction_actual_scatter_plot (#610)
- Add plot_holidays (#624)
- Add instruction about documentation formatting to contribution guide (#648)
- Seasonal strategy in TimeSeriesImputerTransform (#639)
- Add logging to
Metric.__call__
(#643) - Add in_column to plot_anomalies, plot_anomalies_interactive (#618)
- Add logging to TSDataset.inverse_transform (#642)
- Passing non default params for default models STLTransform (#641)
- Fixed bug in SARIMAX model with
horizon
=1 (#637) - Fixed bug in models
get_model
method (#623) - Fixed unsafe comparison in plots (#611)
- Fixed plot_trend does not work with Linear and TheilSen transforms (#617)
- Improve computation time for rolling window statistics (#625)
- Don't fill first timestamps in TimeSeriesImputerTransform (#634)
- Fix documentation formatting (#636)
- Fix bug with exog features in AutoRegressivePipeline (#647)
- Fix missed dependencies (#656)
- Fix custom_transform_and_model notebook (#651)
- Fix MyBinder bug with dependencies (#650)
- Regressors logic to TSDatasets init (#357)
FutureMixin
into some transforms (#361)- Regressors updating in TSDataset transform loops (#374)
- Regressors handling in TSDataset
make_future
andtrain_test_split
(#447) - Prediction intervals visualization in
plot_forecast
(#538) - Add plot_imputation (#598)
- Add plot_time_series_with_change_points function (#534)
- Add plot_trend (#565)
- Add find_change_points function (#521)
- Add option
day_number_in_year
to DateFlagsTransform (#552) - Add plot_residuals (#539)
- Add get_residuals (#597)
- Create
PerSegmentBaseModel
,PerSegmentPredictionIntervalModel
(#537) - Create
MultiSegmentModel
(#551) - Add qq_plot (#604)
- Add regressors example notebook (#577)
- Create
EnsembleMixin
(#574) - Add option
season_number
to DateFlagsTransform (#567) - Create
BasePipeline
, add prediction intervals to all the pipelines, move parameter n_fold to forecast (#578) - Add stl_plot (#575)
- Add plot_features_relevance (#579)
- Add community section to README.md (#580)
- Create
AbstaractPipeline
(#573) - Option "auto" to
weights
parameter ofVotingEnsemble
, enables to use feature importance as weights of base estimators (#587)
- Change the way
ProphetModel
works with regressors (#383) - Change the way
SARIMAXModel
works with regressors (#380) - Change the way
Sklearn
models works with regressors (#440) - Change the way
FeatureSelectionTransform
works with regressors, rename variables replacing the "regressor" to "feature" (#522) - Add table option to ConsoleLogger (#544)
- Installation instruction (#526)
- Update plot_forecast for multi-forecast mode (#584)
- Trainer kwargs for deep models (#540)
- Update CONTRIBUTING.md (#536)
- Rename
_CatBoostModel
,_HoltWintersModel
,_SklearnModel
(#543) - Add logging to TSDataset.make_future, log repr of transform instead of class name (#555)
- Rename
_SARIMAXModel
and_ProphetModel
, makeSARIMAXModel
andProphetModel
inherit fromPerSegmentPredictionIntervalModel
(#549) - Update get_started section in README (#569)
- Make detrending polynomial (#566)
- Update documentation about transforms that generate regressors, update examples with them (#572)
- Fix that segment is string (#602)
- Make
LabelEncoderTransform
andOneHotEncoderTransform
multi-segment (#554)
- Fix
TSDataset._update_regressors
logic removing the regressors (#489) - Fix
TSDataset.info
,TSDataset.describe
methods (#519) - Fix regressors handling for
OneHotEncoderTransform
andHolidayTransform
(#518) - Fix wandb summary issue with custom plots (#535)
- Small notebook fixes (#595)
- Fix import Literal in plotters (#558)
- Fix plot method bug when plot method does not plot all required segments (#596)
- Fix dependencies for ARM (#599)
- [BUG] nn models make forecast without inverse_transform (#541)
- Fixed adding unnecessary lag=1 in statistics (#523)
- Fixed wrong MeanTransform behaviour when using alpha parameter (#523)
- Fix processing add_noise=True parameter in datasets generation (#520)
- Fix scipy version (#525)
- Holt-Winters', Holt and exponential smoothing models (#502)
- Bug with exog features in DifferencingTransform.inverse_transform (#503)
- Allow choosing start and end in
TSDataset.plot
method (488)
- Make TSDataset.to_flatten faster (#475)
- Allow logger percentile metric aggregation to work with NaNs (#483)
- Can't make forecasting with pipelines, data with nans, and Imputers (#473)
- Method TSDataset.info (#409)
- DifferencingTransform (#414)
- OneHotEncoderTransform and LabelEncoderTransform (#431)
- MADTransform (#441)
MRMRFeatureSelectionTransform
(#439)- Possibility to change metric representation in backtest using Metric.name (#454)
- Warning section in documentation about look-ahead bias (#464)
- Parameter
figsize
to all the plotters #465
- Change method TSDataset.describe (#409)
- Group Transforms according to their impact (#420)
- Change the way
LagTransform
,DateFlagsTransform
andTimeFlagsTransform
generate column names (#421) - Clarify the behaviour of TimeSeriesImputerTransform in case of all NaN values (#427)
- Fixed bug in title in
sample_acf_plot
method (#432) - Pytorch-forecasting and sklearn version update + some pytroch transform API changing (#445)
- Add relevance_params in GaleShapleyFeatureSelectionTransform (#410)
- Docs for statistics transforms (#441)
- Handling NaNs in trend transforms (#456)
- Logger fails with StackingEnsemble (#460)
- SARIMAX parameters fix (#459)
- [BUG] Check pytorch-forecasting models with freq > "1D" (#463)
- Holiday Transform (#359)
- S3FileLogger and LocalFileLogger (#372)
- Parameter
changepoint_prior_scale
toProphetModel
(#408)
- Set
strict_optional = True
for mypy (#381) - Move checking the series endings to
make_future
step (#413)
- Sarimax bug in future prediction with quantiles (#391)
- Catboost version too high (#394)
- Add sorting of classes in left bar in docs (#397)
- nn notebook in docs (#396)
- SklearnTransform column name generation (#398)
- Inverse transform doesn't affect quantiles (#395)
- Docs generation for neural networks
- Speed up
_check_regressors
and_merge_exog
(#360)
Model
,PerSegmentModel
,PerSegmentWrapper
imports (#362)- Docs generation (#363)
- Fixed work of get_anomalies_density with constant series (#334)
- ACF plot (#318)
- Add
ts.inverse_transform
as final step atPipeline.fit
method (#316) - Make test_ts optional in plot_forecast (#321)
- Speed up inference for multisegment regression models (#333)
- Speed up Pipeline._get_backtest_forecasts (#336)
- Speed up SegmentEncoderTransform (#331)
- Wandb Logger does not work unless pytorch is installed (#340)
- Get rid of lambda in DensityOutliersTransform and get_anomalies_density (#341)
- Fixed import in transforms (#349)
- Pickle DTWClustering (#350)
- Remove TimeSeriesCrossValidation (#337)
- RelevanceTable returns rank (#268)
- GaleShapleyFeatureSelectionTransform (#284)
- FilterFeaturesTransform (#277)
- Spell checking for source code and md files (#303)
- ResampleWithDistributionTransform (#296)
- Add function to duplicate exogenous data (#305)
- FourierTransform (#306)
- Rename confidence interval to prediction interval, start working with quantiles instead of interval_width (#285)
- Changed format of forecast and test dataframes in WandbLogger (#309)
- Add sum for omegaconf resolvers (#300)
- Delete restriction on version of pandas (#274)
- Backtest cli (#223, #259)
- TreeFeatureSelectionTransform (#229)
- Feature relevance table calculation using tsfresh (#227, #249)
- Method to_flatten to TSDataset (#241
- Out_column parameter to not inplace transforms(#211)
- omegaconf config parser in cli (#258)
- Feature relevance table calculation using feature importance (#261)
- MeanSegmentEncoderTransform (#265)
- Add possibility to set custom in_column for ConfidenceIntervalOutliersTransform (#240)
- Make
in_column
the first argument in every transform (#247) - Update mypy checking and fix issues with it (#248)
- Add histogram method in outliers notebook (#252)
- Joblib parameters for backtest and ensembles (#253)
- Replace cycle over segments with vectorized expression in TSDataset._check_endings (#264)
- Fixed broken links in docs command section (#223)
- Fix default value for TSDataset.tail (#245)
- Fix raising warning on fitting SklearnModel on dataset categorical columns (#250)
- Fix working TSDataset.make_future with empty exog values (#244)
- Fix issue with aggregate_metrics=True for ConsoleLogger and WandbLogger (#254)
- Fix binder requirements to work with optional dependencies (#257)
- BinsegTrendTransform, ChangePointsTrendTransform (#87)
- Interactive plot for anomalies (#95)
- Examples to TSDataset methods with doctest (#92)
- WandbLogger (#71)
- Pipeline (#78)
- Sequence anomalies (#96), Histogram anomalies (#79)
- 'is_weekend' feature in DateFlagsTransform (#101)
- Documentation example for models and note about inplace nature of forecast (#112)
- Property regressors to TSDataset (#82)
- Clustering (#110)
- Outliers notebook (#123))
- Method inverse_transform in TimeSeriesImputerTransform (#135)
- VotingEnsemble (#150)
- Forecast command for cli (#133)
- MyPy checks in CI/CD and lint commands (#39)
- TrendTransform (#139)
- Running notebooks in ci (#134)
- Cluster plotter to EDA (#169)
- Pipeline.backtest method (#161, #192)
- STLTransform class (#158)
- NN_examples notebook (#159)
- Example for ProphetModel (#178)
- Instruction notebook for custom model and transform creation (#180)
- Add inverse_transform in *OutliersTransform (#160)
- Examples for CatBoostModelMultiSegment and CatBoostModelPerSegment (#181)
- Simplify TSDataset.train_test_split method by allowing to pass not all values (#191)
- Confidence interval anomalies detection to EDA (#182)
- ConfidenceIntervalOutliersTransform (#196)
- Add 'in_column' parameter to get_anomalies methods(#199)
- Clustering notebook (#152)
- StackingEnsemble (#195)
- Add AutoRegressivePipeline (#209)
- Ensembles notebook (#218)
- Function plot_backtest_interactive (#225)
- Confidence intervals in Pipeline (#221)
- Delete offset from WindowStatisticsTransform (#111)
- Add Pipeline example in Get started notebook (#115)
- Internal implementation of BinsegTrendTransform (#141)
- Colorebar scaling in Correlation heatmap plotter (#143)
- Add Correlation heatmap in EDA notebook (#144)
- Add
__repr__
for Pipeline (#151) - Defined random state for every test cases (#155)
- Add confidence intervals to Prophet (#153)
- Add confidence intervals to SARIMA (#172)
- Add badges to all example notebooks (#220)
- Update backtest notebook by adding Pipeline.backtest (222)
- Set default value of
TSDataset.head
method (#170) - Categorical and fillna issues with pandas >=1.2 (#190)
- Fix
TSDataset.to_dataset
method sorting bug (#183) - Undefined behaviour of DataFrame.loc[:, pd.IndexSlice[:, ["a", "b"]]] between 1.1.* and >= 1.2 (#188)
- Fix typo in word "length" in
get_segment_sequence_anomalies
,get_sequence_anomalies
,SAXOutliersTransform
arguments (#212) - Make possible to send backtest plots with many segments (#225)
- Limit version of pandas by 1.2 (excluding) (#163)
- SklearnTransform out column names (#99)
- Update EDA notebook (#96)
- Add 'regressor_' prefix to output columns of LagTransform, DateFlagsTransform, SpecialDaysTransform, SegmentEncoderTransform
- Add more obvious Exception Error for forecasting with unfitted model (#102)
- Fix bug with hardcoded frequency in PytorchForecastingTransform (#107)
- Bug with inverse_transform method of TimeSeriesImputerTransform (#148)
- Documentation build workflow (#85)
- MedianOutliersTransform, DensityOutliersTransform (#30)
- Issues and Pull Request templates
- TSDataset checks (#24, #20)\
- Pytorch-Forecasting models (#29)
- SARIMAX model (#10)
- Logging, including ConsoleLogger (#46)
- Correlation heatmap plotter (#77)
- Backtest is fully parallel
- New default hyperparameters for CatBoost
- Add 'regressor_' prefix to output columns of LagTransform, DateFlagsTransform, SpecialDaysTransform, SegmentEncoderTransform
- Documentation fixes (#55, #53, #52)
- Solved warning in LogTransform and AddConstantTransform (#26)
- Regressors do not have enough history bug (#35)
- make_future(1) and make_future(2) bug
- Fix working with 'cap' and 'floor' features in Prophet model (#62)
- Fix saving init params for SARIMAXModel (#81)
- Imports of nn models, PytorchForecastingTransform and Transform (#80)
- Models
- CatBoost
- Prophet
- Seasonal Moving Average
- Naive
- Linear
- Transforms
- Rolling statistics
- Trend removal
- Segment encoder
- Datetime flags
- Sklearn's scalers (MinMax, Robust, MinMaxAbs, Standard, MaxAbs)
- BoxCox, YeoJohnson, LogTransform
- Lag operator
- NaN imputer
- TimeSeriesCrossValidation
- Time Series Dataset (TSDataset)
- Playground datasets generation (AR, constant, periodic, from pattern)
- Metrics (MAE, MAPE, SMAPE, MedAE, MSE, MSLE, R^2)
- EDA methods
- Outliers detection
- PACF plot
- Cross correlation plot
- Distribution plot
- Anomalies (Outliers) plot
- Backtest (CrossValidation) plot
- Forecast plot