Skip to content

Latest commit

 

History

History
876 lines (790 loc) · 68 KB

CHANGELOG.md

File metadata and controls

876 lines (790 loc) · 68 KB

Changelog

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.

Unreleased

Added

  • Add TS2VecEmbeddingModel model (#253)
  • Add EmbeddingSegmentTransform (#265)
  • Add EmbeddingWindowTransform (#265)
  • Add TSTCCEmbeddingModel (#294)
  • Add 210-embedding_models example notebook (#304)

Changed

Fixed

[2.6.0] - 2024-04-11

Added

  • Add BinaryOperationTransform to transforms (#260)
  • Add TFTNativeModel (#290)
  • Add warning on trying to pass numeric timestamp if freq is not None and add _cast_index_to_datetime (#214)
  • Add infer_alignment, apply_alignment, make_timestamp_df into etna.dataset.utils (#256)
  • Add TSDataset.create_from_misaligned constructor (#269)
  • Add tutorial about working with misaligned data (#288)
  • Add in OutliersTransform possibilities use ignore_flag_column to skip values use ignore (#291)

Changed

  • Update glossary with terms related to working with misaligned data (#288)
  • Add ignoring of integer timestamp as a feature into native DL models (#210)
  • Update pytorch_forecasting models to handle integer timestamp (#208)
  • Update datasets module to work with integer timestamp (#146)
  • Add tests for transform on data with integer timestamp (#153)
  • Add tests for models on data with integer timestamp (#188)
  • Update DateFlagsTransform, TimeFlagsTransform, HolidayTransform, SpecialDaysTransform, FourierTransform to work with external timestamp (#169)
  • Update analysis module to work with integer timestamp (#161)
  • Update StatsForecastARIMAModel, StatsForecastAutoARIMAModel, StatsForecastAutoCESModel, StatsForecastAutoETSModel, StatsForecastAutoThetaModel to handle integer timestamp (#197)
  • Update MRMRFeatureSelectionTransform to handle integer timestamp (#164)
  • Update deseasonality transforms (STLTransform, DeseasonalityTransform) to handle integer timestamp (#174)
  • Update HoltModel, HoltWintersModel, SimpleExpSmoothingModel, SARIMAXModel, AutoARIMAModel to handle integer timestamp ((#200)[#200])
  • Update detrend transforms (LinearTrendTransform, TheilSenTrendTransform) to handle integer timestamp (#163)
  • Update ResampleWithDistributionTransform to work with integer timestamp (#165)
  • Update change point transforms (ChangePointsSegmentationTransform, ChangePointsTrendTransform, ChangePointsLevelTransform, TrendTransform) to handle integer timestamp (#176)
  • Update BATSModel, TBATSModel models to work with integer timestamp (#195)
  • Update ProphetModel to handle external timestamp (#203)
  • Remove checking frequency in timestamp_column of ProphetModel (#222)
  • Update FourierTransform to handle external datetime timestamp (#223)
  • Update FoldMask to work with integer timestamp, in validate_on_dataset method add validation on presence of FoldMask parameters in ts.index, add tests for FoldMask (#226)
  • Fix FourierTransform on integer index, add inference tests (#230)
  • Update outliers transforms to handle integer timestamp (#229)
  • Update pipelines to handle integer timestamp (#241)
  • Add timestamp_range and refactor code with it (#244)
  • Update CLI to handle integer timestamp (#246)
  • Update ExogShiftTransform to handle integer timestamp (#254)
  • Extend base TSDataset constructor to handle long format dataframes, update documentation and tutorials with this change (#266)
  • Update internal datasets to work with unaligned data (#292)
  • Speed up "timestamp" transforms (#295

Fixed

  • Fix PredictionIntervalOutliersTransform fails to work with created columns (#291)
  • Prohibit empty list value and duplication of target_timestamps parameter in FoldMask (#226)
  • Fix DeseasonalityTransform fails to inverse transform short series (#174)
  • Fix indexing in stl_plot, plot_periodogram, plot_holidays, plot_backtest, plot_backtest_interactive, ResampleWithDistributionTransform (#244)
  • Fix DifferencingTransform to handle integer timestamp on test (#244)
  • Fix HolidayTransform to handle integer timestamp in days_count mode (#285)

[2.5.0] - 2024-03-18

Added

  • Add electricity to internal datasets (#60)
  • Add parts argument to load_dataset function (#79)
  • Add M4 to internal datasets (#83)
  • Add M3 to internal datasets (#91)
  • Add traffic_2008 to internal datasets (#94)
  • Add traffic_2015 to internal datasets (#100)
  • Add tourism to internal datasets (#120)
  • Add weather to internal datasets (#125)
  • Add ETT to internal datasets (#134)
  • Add list_datasets function (#145)
  • Add IHEPC to internal datasets (#150)
  • Add dataset integrity check using hash for internal datasets (#151)
  • Create page about internal datasets in documentation (#175)
  • Add usage example of internal datasets in 101-get_started.ipynb and 305-classification.ipynb tutorials (#202)
  • Add new mode="days_count" to HolidayTransform(#239)
  • Add size method to TSDataset class (#238)
  • Add the index_only parameter to outlier analysis functions for return type control (#231)

Changed

  • Add relevance_aggregation_mode and redundancy_aggregation_mode into MRMRFeatureSelectionTransform.params_to_tune (#212)
  • Optimized DensityOutliersTransform and removed _save_original_values from outlier transforms (#231)
  • Update python to 3.10 in CI (#251)

Fixed

  • Fix traffic_2008 (128)
  • Fix number of segments in docs, column name for tourism dataset and change default save path (#206)
  • Fix method to_dict for SklearnPerSegmentModel and SklearnMultiSegmentModel (#199)
  • Fix method fit for MRMRFeatureSelectionTransform with redundancy_aggregation_mode=median (#212)
  • Fix method predict_components for _CatBoostAdapter working incorrectly on shuffled columns (#227)

[2.4.0] - 2023-12-15

Added

  • Add params_to_tune for DeepStateModel (#115)
  • Handle new functionality for prediction intervals in the plot_forecast (#130)
  • Add get_historical_forecasts to pipelines for forecast estimation at each fold on the historical dataset (#143)
  • ConformalPredictionIntervals method for prediction intervals estimation (#152)
  • Add DeepARNativeModel (#114)
  • EmpiricalPredictionIntervals method for prediction intervals estimation (#173)
  • Prediction intervals tutorial notebook (#189)

Changed

  • Change warning condition on loading object saved under different library version (#31)

Fixed

  • Speed up segment column creation in TSDataset.to_hierarchical_dataset (#194)
  • Speed up BasePipeline._validate_backtest_dataset (#194)
  • Speed up datasets.utils.duplicate_data (#194)

[2.3.0] - 2023-10-24

Added

  • Handle prediction intervals similar to target components in TSDataset (#97)
  • SavePredictionIntervalsMixin for the BasePredictionIntervals (#87)
  • Base class BasePredictionIntervals for prediction intervals into experimental module (#86)
  • Add fit_params parameter to etna.models.sarimax.SARIMAXModel (#69)
  • Add quickstart notebook, add mechanics_of_forecasting notebook (#1343)
  • Add gallery of tutorials divided by level (#46)
  • Create documentation page with links to external resources (#44)
  • Add documentation page with glossary of terms (#45)
  • Add publishing into s3 for the latest documentation version (#50)
  • Add publishing into s3 during release (#53)
  • Add multiversion switcher into documentation (#55)
  • Add error page into documentation (#57)
  • Add LimitTransform (#63)
  • Add config for Codecov to control CI (#80)
  • Add EventTransform (#78)
  • NaiveVariancePredictionIntervals method for prediction quantiles estimation (#109)
  • Update interval metrics to work with arbitrary interval bounds (#113)

Changed

  • Refactored transform inversion logic in Pipeline forecast method (#72)
  • Add parameter save_ts to pipeline method fit (#73)
  • Add installation page and notes about extensions into documentation of public classes (#1339)
  • Merge User Guide and API sections in documentation, limit classes to show in API section (#1324)
  • Unify example notebooks, rerun example notebooks (#1330)
  • Rework get_started notebook (#1343)
  • Add missing classes from decomposition into API Reference, add modules into page titles in API Reference (#61)
  • Update CONTRIBUTING.md with scenarios of documentation updates and release instruction (#77)
  • Set up sharding for running tests (#99)
  • Rework saving DL models by separating saving model's hyperparameters and model's weights (#98)
  • Deprecated FutureMixin (#58)

Fixed

  • Fix ResampleWithDistributionTransform working with categorical columns (#82)
  • TSDataset._hierarchical_structure_from_level_columns to support pandas>=1.4,<1.5(#107)
  • Fix links from tinkoff-ai/etna to etna-team/etna (#47)
  • Fix CI job cron-delete-untagged-images (#95)
  • Rendering table of contents in notebooks (#1343)
  • Fix formatting of docstrings, fix links from netlify to docs.etna.ai (#62)
  • Fix multiple warnings, revert catching warnings during testing (#105)
  • Fix bug with numpy.warnings in numpy>=1.24, rework building docker images to use poetry.lock (#116)
  • Fix name of steps in publish CI (#119)

[2.2.0] - 2023-08-08

Added

  • DeseasonalityTransform (#1307)
  • Add extension with models from statsforecast: StatsForecastARIMAModel, StatsForecastAutoARIMAModel, StatsForecastAutoCESModel, StatsForecastAutoETSModel, StatsForecastAutoThetaModel (#1295)
  • Notebook feature_selection (#875)
  • Implementation of PatchTS model (#1277)

Changed

  • Add modes binary and category to HolidayTransform (#763)
  • Add sorting by timestamp before the fit in CatBoostPerSegmentModel and CatBoostMultiSegmentModel (#1337)
  • Speed up metrics computation by optimizing segment validation, forbid NaNs during metrics computation (#1338)
  • Unify errors, warnings and checks in models (#1312)
  • Remove upper limitation on version of numba (#1321)
  • Optimize TSDataset.describe and TSDataset.info by vectorization (#1344)
  • Add documentation warning about using dill during loading (#1346)
  • Vectorize metric computation (#1347)

Fixed

  • Pipeline ensembles fail in etna forecast CLI (#1331)
  • Fix performance of DeepARModel and TFTModel (#1322)
  • mrmr feature selection working with categoricals (#1311)
  • Fix version of statsforecast to 1.4 to avoid dependency conflicts during installation (#1313)
  • Add inverse transformation into predict method of pipelines (#1314)
  • Allow saving large pipelines (#1335)
  • Fix link for dataset in classification notebook (#1351)

Removed

  • Building docker images with cuda 10.2 (#1306)

[2.1.0] - 2023-06-30

Added

  • Notebook forecast_interpretation.ipynb with forecast decomposition (#1220)
  • Exogenous variables shift transform ExogShiftTransform(#1254)
  • Parameter start_timestamp to forecast CLI command (#1265)
  • DeepStateModel (#1253)
  • NBeatsGenericModel and NBeatsInterpretableModel (#1302)
  • Function estimate_max_n_folds for folds number estimation (#1279)
  • Parameters estimate_n_folds and context_size to forecast and backtest CLI commands (#1284)
  • Class Tune for hyperparameter optimization within existing pipeline (#1200)
  • Add etna.distributions for using it instead of using optuna.distributions (#1292)

Changed

  • Set the default value of final_model to LinearRegression(positive=True) in the constructor of StackingEnsemble (#1238)
  • Add microseconds to FileLogger's directory name (#1264)
  • Inherit SaveMixin from AbstractSaveable for mypy checker (#1261)
  • Update requirements for holidays and scipy, change saving library from pickle to dill in SaveMixin (#1268)
  • Update requirement for ruptures, add requirement for sqlalchemy (#1276)
  • Optimize make_samples of RNNNet and MLPNet (#1281)
  • Remove to_be_fixed from inference tests on SpecialDaysTransform (#1283)
  • Rewrite TimeSeriesImputerTransform to work without per-segment wrapper (#1293)
  • Add default params_to_tune for catboost models (#1185)
  • Add default params_to_tune for ProphetModel (#1203)
  • Add default params_to_tune for SARIMAXModel, change default parameters for the model (#1206)
  • Add default params_to_tune for linear models (#1204)
  • Add default params_to_tune for SeasonalMovingAverageModel, MovingAverageModel, NaiveModel and DeadlineMovingAverageModel (#1208)
  • Add default params_to_tune for DeepARModel and TFTModel (#1210)
  • Add default params_to_tune for HoltWintersModel, HoltModel and SimpleExpSmoothingModel (#1209)
  • Add default params_to_tune for RNNModel and MLPModel (#1218)
  • Add default params_to_tune for DateFlagsTransform, TimeFlagsTransform, SpecialDaysTransform and FourierTransform (#1228)
  • Add default params_to_tune for MedianOutliersTransform, DensityOutliersTransform and PredictionIntervalOutliersTransform (#1231)
  • Add default params_to_tune for TimeSeriesImputerTransform (#1232)
  • Add default params_to_tune for DifferencingTransform, MedianTransform, MaxTransform, MinTransform, QuantileTransform, StdTransform, MeanTransform, MADTransform, MinMaxDifferenceTransform, SumTransform, BoxCoxTransform, YeoJohnsonTransform, MaxAbsScalerTransform, MinMaxScalerTransform, RobustScalerTransform and StandardScalerTransform (#1233)
  • Add default params_to_tune for LabelEncoderTransform (#1242)
  • Add default params_to_tune for ChangePointsSegmentationTransform, ChangePointsTrendTransform, ChangePointsLevelTransform, TrendTransform, LinearTrendTransform, TheilSenTrendTransform and STLTransform (#1243)
  • Add default params_to_tune for TreeFeatureSelectionTransform, MRMRFeatureSelectionTransform and GaleShapleyFeatureSelectionTransform (#1250)
  • Add tuning stage into Auto.fit (#1272)
  • Add params_to_tune into Tune init (#1282)
  • Skip duplicates during Tune.fit, skip duplicates in top_k, add AutoML notebook (#1285)
  • Add parameter fast_redundancy in mrmm, fix relevance calculation in get_model_relevance_table (#1294)

Fixed

  • Fix plot_backtest and plot_backtest_interactive on one-step forecast (1260)
  • Fix BaseReconciliator to work on pandas==1.1.5 (#1229)
  • Fix TSDataset.make_future to handle hierarchy, quantiles, target components (#1248)
  • Fix warning during creation of ResampleWithDistributionTransform (#1230)
  • Add deep copy for copying attributes of TSDataset (#1241)
  • Add tsfresh into optional dependencies, remove instruction about pip install tsfresh (#1246)
  • Fix DeepARModel and TFTModel to work with changed prediction_size (#1251)
  • Fix problems with flake8 B023 (#1252)
  • Fix problem with swapped forecast methods in HierarchicalPipeline (#1259)
  • Fix problem with segment name "target" in StackingEnsemble (#1262)
  • Fix BasePipeline.forecast when prediction intervals are estimated on history data with presence of NaNs (#1291)
  • Teach BaseMixin.set_params to work with nested list and tuple (#1201)
  • Fix get_anomalies_prediction_interval to work when segments have different start date (#1296)
  • Fix classification notebook to download FordA dataset without error (#1299)
  • Fix signature of Auto.fit, Tune.fit to not have a breaking change (#1300)

[2.0.0] - 2023-04-11

Added

  • Target components logic into AutoRegressivePipeline (#1188)
  • Target components logic into HierarchicalPipeline (#1199)
  • predict method into HierarchicalPipeline (#1199)
  • Add target components handling in get_level_dataframe (#1179)
  • Forecast decomposition for SeasonalMovingAverageModel(#1180)
  • Target components logic into base classes of pipelines (#1173)
  • Method predict_components for forecast decomposition in _SklearnAdapter and _LinearAdapter for linear models (#1164)
  • Target components logic into base classes of models (#1158)
  • Target components logic to TSDataset (#1153)
  • Methods save and load to HierarchicalPipeline (#1096)
  • New data access methods in TSDataset : update_columns_from_pandas, add_columns_from_pandas, drop_features (#809)
  • PytorchForecastingDatasetBuiler for neural networks from Pytorch Forecasting (#971)
  • New base classes for per-segment and multi-segment transforms IrreversiblePersegmentWrapper, ReversiblePersegmentWrapper, IrreversibleTransform, ReversibleTransform (#835)
  • New base class for one segment transforms OneSegmentTransform (#894)
  • ChangePointsLevelTransform and base classes PerIntervalModel, BaseChangePointsModelAdapter for per-interval transforms (#998)
  • Method set_params to change parameters of ETNA objects (#1102)
  • Function plot_forecast_decomposition (#1129)
  • Method forecast_components for forecast decomposition in _TBATSAdapter (#1133)
  • Methods forecast_components and predict_components for forecast decomposition in _CatBoostAdapter (#1148)
  • Methods forecast_components and predict_components for forecast decomposition in _HoltWintersAdapter (#1162)
  • Method predict_components for forecast decomposition in _ProphetAdapter (#1172)
  • Methods forecast_components and predict_components for forecast decomposition in _SARIMAXAdapter and _AutoARIMAAdapter (#1174)
  • Add refit parameter into backtest (#1159)
  • Add stride parameter into backtest (#1165)
  • Add optional parameter ts into forecast method of pipelines (#1071)
  • Add tests on transform method of transforms on subset of segments, on new segments, on future with gap (#1094)
  • Add tests on inverse_transform method of transforms on subset of segments, on new segments, on future with gap (#1127)
  • In-sample prediction for BATSModel and TBATSModel (#1181)
  • Method predict_components for forecast decomposition in _TBATSAdapter (#1181)
  • Forecast decomposition for DeadlineMovingAverageModel(#1186)
  • Prediction decomposition example into custom_transform_and_model.ipynb(#1216)

Changed

  • Add optional features parameter in the signature of TSDataset.to_pandas, TSDataset.to_flatten (#809)
  • Signature of the constructor of TFTModel, DeepARModel (#1110)
  • Interface of Transform and PerSegmentWrapper (#835)
  • Signature of TSDataset methods inverse_transform and make_future now has transforms parameter. Remove transforms and regressors updating logic from TSDataset. Forecasts from the models are not internally inverse transformed. Methods fit,transform,inverse_transform of Transform now works with TSDataset (#956)
  • Create AutoBase and AutoAbstract classes, some of Auto class's logic moved there (#1114)
  • Impose specific order of columns on return value of TSDataset.to_flatten (#1095)
  • Add more scenarios into tests for models (#1082)
  • Decouple SeasonalMovingAverageModel from PerSegmentModelMixin (#1132)
  • Decouple DeadlineMovingAverageModel from PerSegmentModelMixin (#1140)
  • Remove version python-3.7 from pyproject.toml, update lock (#1183)
  • Bump minimum pandas version up to 1.1 (#1214)

Fixed

  • Fix bug in GaleShapleyFeatureSelectionTransform with wrong number of remaining features (#1110)
  • ProphetModel fails with additional seasonality set (#1157)
  • Fix inference tests on new segments for DeepARModel and TFTModel (#1109)
  • Fix alignment during forecasting in new NNs, add validation of context size during forecasting in new NNs, add validation of batch in MLPNet (#1108)
  • Fix MeanSegmentEncoderTransform to work with subset of segments and raise error on new segments (#1104)
  • Fix outliers transforms on future with gap (#1147)
  • Fix SegmentEncoderTransform to work with subset of segments and raise error on new segments (#1103)
  • Fix SklearnTransform in per-segment mode to work on subset of segments and raise error on new segments (#1107)
  • Fix OutliersTransform and its children to raise error on new segments (#1139)
  • Fix DifferencingTransform to raise error on new segments during transform and inverse_transform in inplace mode (#1141)
  • Teach DifferencingTransform to inverse_transform with NaNs (#1155)
  • Fixed custom_transform_and_model.ipynb(#1216)

Removed

  • sample_acf_plot, sample_pacf_plot, CatBoostModelPerSegment, CatBoostModelMultiSegment (#1118)
  • PytorchForecastingTransform (#971)

[1.15.0] - 2023-01-31

Added

  • RMSE metric & rmse functional metric (#1051)
  • MaxDeviation metric & max_deviation functional metric (#1061)
  • Add saving/loading for transforms, models, pipelines, ensembles; tutorial for saving/loading (#1068)
  • Add hierarchical time series support(#1083)
  • Add WAPE metric & wape functional metric (#1085)

Fixed

  • Missed kwargs in TFT init(#1078)

[1.14.0] - 2022-12-16

Added

  • Add python 3.10 support (#1005)
  • Add SumTranform(#1021)
  • Add plot_change_points_interactive (#988)
  • Add experimental module with TimeSeriesBinaryClassifier and PredictabilityAnalyzer (#985)
  • Inference track results: add predict method to pipelines, teach some models to work with context, change hierarchy of base models, update notebook examples (#979)
  • Add get_ruptures_regularization into experimental module (#1001)
  • Add example classification notebook for experimental classification feature (#997)

Changed

  • Change returned model in get_model of BATSModel, TBATSModel (#987)
  • Add acf_plot, deprecated sample_acf_plot, sample_pacf_plot (#1004)
  • Change returned model in get_model of HoltWintersModel, HoltModel, SimpleExpSmoothingModel (#986)

Fixed

  • Fix MinMaxDifferenceTransform import (#1030)
  • Fix release docs and docker images cron job (#982)
  • Fix forecast first point with CatBoostPerSegmentModel (#1010)
  • Fix hanging EDA notebook (#1027)
  • Fix hanging EDA notebook v2 + cache clean script (#1034)

[1.13.0] - 2022-10-10

Added

  • Add greater_is_better property for Metric (#921)
  • etna.auto for greedy search, etna.auto.pool with default pipelines, etna.auto.optuna wrapper for optuna (#895)
  • Add MinMaxDifferenceTransform (#955)
  • Add wandb sweeps and optuna examples (#338)

Changed

  • Make slicing faster in TSDataset._merge_exog, FilterFeaturesTransform, AddConstTransform, LambdaTransform, LagTransform, LogTransform, SklearnTransform, WindowStatisticsTransform; make CICD test different pandas versions (#900)
  • Mark some tests as long (#929)
  • Fix to_dict with nn models and add unsafe conversion for callbacks (#949)

Fixed

  • Fix to_dict with function as parameter (#941)
  • Fix native networks to work with generated future equals to horizon (#936)
  • Fix SARIMAXModel to work with exogenous data on pmdarima>=2.0 (#940)
  • Teach catboost to work with encoders (#957)

[1.12.0] - 2022-09-05

Added

  • Function to transform etna objects to dict(#818)
  • MLPModel(#860)
  • DeadlineMovingAverageModel (#827)
  • DirectEnsemble (#824)
  • CICD: untaged docker image cleaner (#856)
  • Notebook about forecasting strategies (#864)
  • Add ChangePointSegmentationTransform, RupturesChangePointsModel (#821)

Changed

  • Teach AutoARIMAModel to work with out-sample predictions (#830)
  • Make TSDataset.to_flatten faster for big datasets (#848)

Fixed

  • Type hints for external users by PEP 561 (#868)
  • Type hints for Pipeline.model match models.nn(#768)
  • Fix behavior of SARIMAXModel if simple_differencing=True is set (#837)
  • Bug python3.7 and TypedDict import (867)
  • Fix deprecated pytorch lightning trainer flags (#866)
  • ProphetModel doesn't work with cap and floor regressors (#842)
  • Fix problem with encoding category types in OHE (#843)
  • Change Docker cuda image version from 11.1 to 11.6.2 (#838)
  • Optimize time complexity of determine_num_steps(#864)
  • All warning as errors(#880)
  • Update .gitignore with .DS_Store and checkpoints (#883)
  • Delete ROADMAP.md ([#904]tinkoff-ai#904)
  • Fix ci invalid cache (#896)

[1.11.1] - 2022-08-03

Fixed

  • Fix missing constant_value in TimeSeriesImputerTransform (#819)
  • Make in-sample predictions of SARIMAXModel non-dynamic in all cases (#812)
  • Add known_future to cli docs (#823)

[1.11.0] - 2022-07-25

Added

  • LSTM based RNN and native deep models base classes (#776)
  • Lambda transform (#762)
  • assemble pipelines (#774)
  • Tests on in-sample, out-sample predictions with gap for all models (#785)

Changed

  • Add columns and mode parameters in plot_correlation_matrix (#726)
  • Add CatBoostPerSegmentModel and CatBoostMultiSegmentModel classes, deprecate CatBoostModelPerSegment and CatBoostModelMultiSegment (#779)
  • Allow Prophet update to 1.1 (#799)
  • Make LagTransform, LogTransform, AddConstTransform vectorized (#756)
  • Improve the behavior of plot_feature_relevance visualizing p-values (#795)
  • 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)
  • Wandb.log to WandbLogger (#816)

Fixed

  • 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)
  • Raise errors in models.nn if they can't make in-sample and some cases out-sample predictions (#813)
  • Teach BATS/TBATS to work with in-sample, out-sample predictions correctly (#806)
  • Github actions cache issue with poetry update (#778)

[1.10.0] - 2022-06-12

Added

  • 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)

Changed

  • 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)

Fixed

  • 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)

[1.9.0] - 2022-05-17

Added

  • Add plot_metric_per_segment (#658)
  • Add metric_per_segment_distribution_plot (#666)

Changed

  • Remove parameter normalize in linear models (#686)

Fixed

  • 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])

[1.8.0] - 2022-04-28

Added

  • Width and Coverage 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)

Changed

  • Add logging to Metric.__call__ (#643)
  • Add in_column to plot_anomalies, plot_anomalies_interactive (#618)
  • Add logging to TSDataset.inverse_transform (#642)

Fixed

  • 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)

[1.7.0] - 2022-03-16

Added

  • Regressors logic to TSDatasets init (#357)
  • FutureMixin into some transforms (#361)
  • Regressors updating in TSDataset transform loops (#374)
  • Regressors handling in TSDataset make_future and train_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 of VotingEnsemble, enables to use feature importance as weights of base estimators (#587)

Changed

  • 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, make SARIMAXModel and ProphetModel inherit from PerSegmentPredictionIntervalModel (#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 and OneHotEncoderTransform multi-segment (#554)

Fixed

  • Fix TSDataset._update_regressors logic removing the regressors (#489)
  • Fix TSDataset.info, TSDataset.describe methods (#519)
  • Fix regressors handling for OneHotEncoderTransform and HolidayTransform (#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)

[1.6.3] - 2022-02-14

Fixed

  • 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)

[1.6.2] - 2022-02-09

Added

  • Holt-Winters', Holt and exponential smoothing models (#502)

Fixed

  • Bug with exog features in DifferencingTransform.inverse_transform (#503)

[1.6.1] - 2022-02-03

Added

  • Allow choosing start and end in TSDataset.plot method (488)

Changed

  • Make TSDataset.to_flatten faster (#475)
  • Allow logger percentile metric aggregation to work with NaNs (#483)

Fixed

  • Can't make forecasting with pipelines, data with nans, and Imputers (#473)

[1.6.0] - 2022-01-28

Added

  • 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

Changed

  • Change method TSDataset.describe (#409)
  • Group Transforms according to their impact (#420)
  • Change the way LagTransform, DateFlagsTransform and TimeFlagsTransform 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)

Fixed

  • 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)

[1.5.0] - 2021-12-24

Added

  • Holiday Transform (#359)
  • S3FileLogger and LocalFileLogger (#372)
  • Parameter changepoint_prior_scale to ProphetModel (#408)

Changed

  • Set strict_optional = True for mypy (#381)
  • Move checking the series endings to make_future step (#413)

Fixed

  • 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)

[1.4.2] - 2021-12-09

Fixed

  • Docs generation for neural networks

[1.4.1] - 2021-12-09

Changed

  • Speed up _check_regressors and _merge_exog (#360)

Fixed

  • Model, PerSegmentModel, PerSegmentWrapper imports (#362)
  • Docs generation (#363)
  • Fixed work of get_anomalies_density with constant series (#334)

[1.4.0] - 2021-12-03

Added

Changed

  • Add ts.inverse_transform as final step at Pipeline.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)

Fixed

  • Get rid of lambda in DensityOutliersTransform and get_anomalies_density (#341)
  • Fixed import in transforms (#349)
  • Pickle DTWClustering (#350)

Removed

  • Remove TimeSeriesCrossValidation (#337)

[1.3.3] - 2021-11-24

Added

  • 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)

Changed

  • 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)

Fixed

[1.3.2] - 2021-11-18

Changed

  • Add sum for omegaconf resolvers (#300)

[1.3.1] - 2021-11-12

Changed

  • Delete restriction on version of pandas (#274)

[1.3.0] - 2021-11-12

Added

  • 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)

Changed

  • 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

  • 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)

[1.2.0] - 2021-10-27

Added

  • 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)

Changed

  • 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)

Fixed

  • 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)

[1.1.3] - 2021-10-08

Fixed

  • Limit version of pandas by 1.2 (excluding) (#163)

[1.1.2] - 2021-10-08

Changed

  • SklearnTransform out column names (#99)
  • Update EDA notebook (#96)
  • Add 'regressor_' prefix to output columns of LagTransform, DateFlagsTransform, SpecialDaysTransform, SegmentEncoderTransform

Fixed

  • 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)

[1.1.1] - 2021-09-23

Fixed

  • Documentation build workflow (#85)

[1.1.0] - 2021-09-23

Added

  • 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)

Changed

  • Backtest is fully parallel
  • New default hyperparameters for CatBoost
  • Add 'regressor_' prefix to output columns of LagTransform, DateFlagsTransform, SpecialDaysTransform, SegmentEncoderTransform

Fixed

  • 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)

[1.0.0] - 2021-09-05

Added

  • 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