github tinkoff-ai/etna 2.0.0
etna 2.0.0

latest releases: 2.2.0, 2.1.0
13 months ago

Breaking changes

  • Transforms now works with TSDataset instead of DataFrames:
    • Methods fit, transform and inverse_transform of transforms expect TSDataset as input
    • Transforms are not stored inside TSDataset now and should be explicitly passed into the methods fit_transform, make_future, inverse_transform
    • Forecasts from the models should be inverse transformed by the user now
  • New workflow for NNs from PyTorch Forecasting, see notebook for details
  • Remove some classes and methods:
    • BinsegTrendTransform - replaced with ChangePointsTrendTransform
    • sample_acf_plot, sample_pacf_plot - replaced with acf_plot
    • CatBoostModelPerSegment, CatBoostModelMultiSegment - redundant classes, CatBoostPerSegmentModel, CatBoostMultiSegmentModel are still available
    • PytorchForecastingTransform - see new workflow for NNs from PyTorch Forecasting
  • Remove support of Python 3.7

Highlights:

  • Add forecast decomposition for all the classical ML models, see return_components parameter in methods forecast and predict. Notebook with examples will be published soon
  • Part of transforms and models are now able to work on new segments and on future data without refitting
  • New backtesting strategies, see parameters refit and stride in method backtest

Full changelog:

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)

Don't miss a new etna release

NewReleases is sending notifications on new releases.