Releases: tinkoff-ai/etna
Releases · tinkoff-ai/etna
etna 2.2.0
Highlights
- Add extension with models from
statsforecast - Speed up metrics computation
- Speed up
DeepARModelandTFTModel - Add
DeseasonalityTransform - Add
PatchTSModel - Add new
categorymode intoHolidayTransform - Add documentation warning about using
dillduring loading - Add inverse transformation into
predictmethod of pipelines - Fix CLI to work with pipeline ensembles
Full changelog
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
binaryandcategorytoHolidayTransform(#763) - Add sorting by timestamp before the fit in
CatBoostPerSegmentModelandCatBoostMultiSegmentModel(#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.describeandTSDataset.infoby vectorization (#1344) - Add documentation warning about using dill during loading (#1346)
- Vectorize metric computation (#1347)
Fixed
- Pipeline ensembles fail in
etna forecastCLI (#1331) - Fix performance of
DeepARModelandTFTModel(#1322) mrmrfeature selection working with categoricals (#1311)- Fix version of
statsforecastto 1.4 to avoid dependency conflicts during installation (#1313) - Add inverse transformation into
predictmethod 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)
etna 2.1.0
Highlights
- Add class
etna.auto.Tunefor tuning hyperparameters - Extend functionality of class
etna.auto.Autoto include a tuning stage - Add notebook about AutoML
- Add utilities for estimating number of folds for backtesting and forecasting and integrate them into CLI
- Add parameter for setting the start of prediction into CLI
- Add
etna.transforms.ExogShiftTransformto shift all exogenous variables - Add
etna.models.DeepStateModel - Update requirements for
holidays,scipy,ruptures,sqlalchemy,tsfresh - Optimize
make_samplesofetna.models.RNNNetandetna.models.MLPNet - Add parameter
fast_redundancyinetna.analysis.feature_selection.mrmmandetna.transforms.MRMRFeatureSelectionTransformto speed it up
Full changelog
Added
- Notebook
forecast_interpretation.ipynbwith forecast decomposition (#1220) - Exogenous variables shift transform
ExogShiftTransform(#1254) - Parameter
start_timestampto forecast CLI command (#1265) DeepStateModel(#1253)- Function
estimate_max_n_foldsfor folds number estimation (#1279) - Parameters
estimate_n_foldsandcontext_sizeto forecast and backtest CLI commands (#1284) - Class
Tunefor hyperparameter optimization within existing pipeline (#1200) - Add
etna.distributionsfor using it instead of usingoptuna.distributions(#1292)
Changed
- Set the default value of
final_modeltoLinearRegression(positive=True)in the constructor ofStackingEnsemble(#1238) - Add microseconds to
FileLogger's directory name (#1264) - Inherit
SaveMixinfromAbstractSaveablefor mypy checker (#1261) - Update requirements for
holidaysandscipy, change saving library frompickletodillinSaveMixin(#1268) - Update requirement for
ruptures, add requirement forsqlalchemy(#1276) - Optimize
make_samplesofRNNNetandMLPNet(#1281) - Remove
to_be_fixedfrom inference tests onSpecialDaysTransform(#1283) - Rewrite
TimeSeriesImputerTransformto work without per-segment wrapper (#1293) - Add default
params_to_tunefor catboost models (#1185) - Add default
params_to_tuneforProphetModel(#1203) - Add default
params_to_tuneforSARIMAXModel, change default parameters for the model (#1206) - Add default
params_to_tunefor linear models (#1204) - Add default
params_to_tuneforSeasonalMovingAverageModel,MovingAverageModel,NaiveModelandDeadlineMovingAverageModel(#1208) - Add default
params_to_tuneforDeepARModelandTFTModel(#1210) - Add default
params_to_tuneforHoltWintersModel,HoltModelandSimpleExpSmoothingModel(#1209) - Add default
params_to_tuneforRNNModelandMLPModel(#1218) - Add default
params_to_tuneforDateFlagsTransform,TimeFlagsTransform,SpecialDaysTransformandFourierTransform(#1228) - Add default
params_to_tuneforMedianOutliersTransform,DensityOutliersTransformandPredictionIntervalOutliersTransform(#1231) - Add default
params_to_tuneforTimeSeriesImputerTransform(#1232) - Add default
params_to_tuneforDifferencingTransform,MedianTransform,MaxTransform,MinTransform,QuantileTransform,StdTransform,MeanTransform,MADTransform,MinMaxDifferenceTransform,SumTransform,BoxCoxTransform,YeoJohnsonTransform,MaxAbsScalerTransform,MinMaxScalerTransform,RobustScalerTransformandStandardScalerTransform(#1233) - Add default
params_to_tuneforLabelEncoderTransform(#1242) - Add default
params_to_tuneforChangePointsSegmentationTransform,ChangePointsTrendTransform,ChangePointsLevelTransform,TrendTransform,LinearTrendTransform,TheilSenTrendTransformandSTLTransform(#1243) - Add default
params_to_tuneforTreeFeatureSelectionTransform,MRMRFeatureSelectionTransformandGaleShapleyFeatureSelectionTransform(#1250) - Add tuning stage into
Auto.fit(#1272) - Add
params_to_tuneintoTuneinit (#1282) - Skip duplicates during
Tune.fit, skip duplicates intop_k, add AutoML notebook (#1285) - Add parameter
fast_redundancyinmrmm, fix relevance calculation inget_model_relevance_table(#1294)
Fixed
- Fix
plot_backtestandplot_backtest_interactiveon one-step forecast (1260) - Fix
BaseReconciliatorto work onpandas==1.1.5(#1229) - Fix
TSDataset.make_futureto handle hierarchy, quantiles, target components (#1248) - Fix warning during creation of
ResampleWithDistributionTransform(#1230) - Add deep copy for copying attributes of
TSDataset(#1241) - Add
tsfreshinto optional dependencies, remove instruction aboutpip install tsfresh(#1246) - Fix
DeepARModelandTFTModelto work with changedprediction_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.forecastwhen prediction intervals are estimated on history data with presence of NaNs (#1291) - Teach
BaseMixin.set_paramsto work with nestedlistandtuple(#1201) - Fix
get_anomalies_prediction_intervalto work when segments have different start date (#1296) - Fix
classificationnotebook to downloadFordAdataset without error (#1299) - Fix signature of
Auto.fit,Tune.fitto not have a breaking change (#1300)
etna 2.0.0
Breaking changes
- Transforms now works with
TSDatasetinstead ofDataFrames:- Methods
fit,transformandinverse_transformof transforms expectTSDatasetas input - Transforms are not stored inside
TSDatasetnow and should be explicitly passed into the methodsfit_transform,make_future,inverse_transform - Forecasts from the models should be inverse transformed by the user now
- Methods
- New workflow for NNs from PyTorch Forecasting, see notebook for details
- Remove some classes and methods:
BinsegTrendTransform- replaced withChangePointsTrendTransformsample_acf_plot,sample_pacf_plot- replaced withacf_plotCatBoostModelPerSegment,CatBoostModelMultiSegment- redundant classes,CatBoostPerSegmentModel,CatBoostMultiSegmentModelare still availablePytorchForecastingTransform- 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_componentsparameter in methodsforecastandpredict. 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
refitandstridein methodbacktest
Full changelog:
Added
- Target components logic into
AutoRegressivePipeline(#1188) - Target components logic into
HierarchicalPipeline(#1199) predictmethod intoHierarchicalPipeline(#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_componentsfor forecast decomposition in_SklearnAdapterand_LinearAdapterfor linear models (#1164) - Target components logic into base classes of models (#1158)
- Target components logic to TSDataset (#1153)
- Methods
saveandloadto HierarchicalPipeline (#1096) - New data access methods in
TSDataset:update_columns_from_pandas,add_columns_from_pandas,drop_features(#809) PytorchForecastingDatasetBuilerfor 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) ChangePointsLevelTransformand base classesPerIntervalModel,BaseChangePointsModelAdapterfor per-interval transforms (#998)- Method
set_paramsto change parameters of ETNA objects (#1102) - Function
plot_forecast_decomposition(#1129) - Method
forecast_componentsfor forecast decomposition in_TBATSAdapter(#1133) - Methods
forecast_componentsandpredict_componentsfor forecast decomposition in_CatBoostAdapter(#1148) - Methods
forecast_componentsandpredict_componentsfor forecast decomposition in_HoltWintersAdapter(#1162) - Method
predict_componentsfor forecast decomposition in_ProphetAdapter(#1172) - Methods
forecast_componentsandpredict_componentsfor forecast decomposition in_SARIMAXAdapterand_AutoARIMAAdapter(#1174) - Add
refitparameter intobacktest(#1159) - Add
strideparameter intobacktest(#1165) - Add optional parameter
tsintoforecastmethod of pipelines (#1071) - Add tests on
transformmethod of transforms on subset of segments, on new segments, on future with gap (#1094) - Add tests on
inverse_transformmethod of transforms on subset of segments, on new segments, on future with gap (#1127) - In-sample prediction for
BATSModelandTBATSModel(#1181) - Method
predict_componentsfor forecast decomposition in_TBATSAdapter(#1181) - Forecast decomposition for
DeadlineMovingAverageModel(#1186) - Prediction decomposition example into
custom_transform_and_model.ipynb(#1216)
Changed
- Add optional
featuresparameter in the signature ofTSDataset.to_pandas,TSDataset.to_flatten(#809) - Signature of the constructor of
TFTModel,DeepARModel(#1110) - Interface of
TransformandPerSegmentWrapper(#835) - Signature of
TSDatasetmethodsinverse_transformandmake_futurenow hastransformsparameter. Remove transforms and regressors updating logic from TSDataset. Forecasts from the models are not internally inverse transformed. Methodsfit,transform,inverse_transformofTransformnow works withTSDataset(#956) - Create
AutoBaseandAutoAbstractclasses, some ofAutoclass'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
SeasonalMovingAverageModelfromPerSegmentModelMixin(#1132) - Decouple
DeadlineMovingAverageModelfromPerSegmentModelMixin(#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
GaleShapleyFeatureSelectionTransformwith wrong number of remaining features (#1110) ProphetModelfails with additional seasonality set (#1157)- Fix inference tests on new segments for
DeepARModelandTFTModel(#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
MeanSegmentEncoderTransformto work with subset of segments and raise error on new segments (#1104) - Fix outliers transforms on future with gap (#1147)
- Fix
SegmentEncoderTransformto work with subset of segments and raise error on new segments (#1103) - Fix
SklearnTransformin per-segment mode to work on subset of segments and raise error on new segments (#1107) - Fix
OutliersTransformand its children to raise error on new segments (#1139) - Fix
DifferencingTransformto raise error on new segments duringtransformandinverse_transformin inplace mode (#1141) - Teach
DifferencingTransformtoinverse_transformwith NaNs (#1155) - Fixed
custom_transform_and_model.ipynb(#1216)
Removed
Release 1.15.1
etna 1.15.0
Highlights:
- Add saving/loading for transforms, models, pipelines, ensembles; tutorial for saving/loading (#1068)
- Add hierarchical time series support(#1083)
Full changelog:
Added
RMSEmetric &rmsefunctional metric (#1051)MaxDeviationmetric &max_deviationfunctional metric (#1061)- Add saving/loading for transforms, models, pipelines, ensembles; tutorial for saving/loading (#1068)
- Add hierarchical time series support(#1083)
- Add
WAPEmetric &wapefunctional metric (#1085)
Fixed
- Missed kwargs in TFT init(#1078)
etna 1.14.0
Highlights:
- Add python 3.10 support (#1005)
- Add experimental module with TimeSeriesBinaryClassifier and PredictabilityAnalyzer (#985), see example notebook for the ditails (#997)
- Inference track results: add predict method to pipelines, teach some models to work with context, change hierarchy of base models, update notebook examples (#979)
Full changelog:
Added
- Add python 3.10 support (#1005)
- Add
SumTranform(#1021) - Add
plot_change_points_interactive(#988) - Add
experimentalmodule withTimeSeriesBinaryClassifierandPredictabilityAnalyzer(#985) - Inference track results: add
predictmethod to pipelines, teach some models to work with context, change hierarchy of base models, update notebook examples (#979) - Add
get_ruptures_regularizationintoexperimentalmodule (#1001) - Add example
classificationnotebook 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_modelofHoltWintersModel,HoltModel,SimpleExpSmoothingModel(#986)
Fixed
etna 1.13.0
Highlights:
etna.auto module for pipeline greedy search with default pipelines pool
wandb sweeps and optuna examples
Full changelog:
Added
- Add
greater_is_betterproperty for Metric (#921) etna.autofor greedy search,etna.auto.poolwith default pipelines,etna.auto.optunawrapper 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
etna 1.12.0
Highlights:
- ETNA native
MLPModel to_dictmethod in all the etna objectsDirectEnsembleimplementing the direct forecasting strategy- Notebook about forecasting strategies
Full changelog:
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.modelmatchmodels.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]#904)
- Fix ci invalid cache (#896)
etna 1.11.1
etna 1.11.0
Highlights:
- ETNA native RNN and base classes for deep learning models
- Lambda transform
- Prophet 1.1 support without c++ compiler dependency
- Prediction intervals for DeepAR and TFTModel
- Add
known_futureparameter to CLI
Full changelog:
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_futureparameter 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)