Recent Releases of https://github.com/tinkoff-ai/etna

https://github.com/tinkoff-ai/etna - etna 2.2.0

Highlights

  • Add extension with models from statsforecast
  • Speed up metrics computation
  • Speed up DeepARModel and TFTModel
  • Add DeseasonalityTransform
  • Add PatchTSModel
  • Add new category mode into HolidayTransform
  • Add documentation warning about using dill during loading
  • Add inverse transformation into predict method 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 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)

- Python
Published by Mr-Geekman over 2 years ago

https://github.com/tinkoff-ai/etna - etna 2.1.0

Highlights

  • Add class etna.auto.Tune for tuning hyperparameters
  • Extend functionality of class etna.auto.Auto to 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.ExogShiftTransform to shift all exogenous variables
  • Add etna.models.DeepStateModel
  • Update requirements for holidays, scipy, ruptures, sqlalchemy, tsfresh
  • Optimize make_samples of etna.models.RNNNet and etna.models.MLPNet
  • Add parameter fast_redundancy in etna.analysis.feature_selection.mrmm and etna.transforms.MRMRFeatureSelectionTransform to speed it up

Full changelog

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

- Python
Published by Mr-Geekman over 2 years ago

https://github.com/tinkoff-ai/etna - etna 2.0.0

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)

- Python
Published by alex-hse-repository almost 3 years ago

https://github.com/tinkoff-ai/etna - Release 1.15.1

Full changelog:

Changed

  • Impose specific order of columns on return value of TSDataset.to_flatten (#1095) ### Fixed
  • Fix bug in GaleShapleyFeatureSelectionTransform with wrong number of remaining features (#1110)

- Python
Published by alex-hse-repository almost 3 years ago

https://github.com/tinkoff-ai/etna - 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

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

- Python
Published by brsnw250 about 3 years ago

https://github.com/tinkoff-ai/etna - 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 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 acfplot, deprecated sampleacfplot, samplepacf_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)

- Python
Published by alex-hse-repository about 3 years ago

https://github.com/tinkoff-ai/etna - 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_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)

- Python
Published by alex-hse-repository over 3 years ago

https://github.com/tinkoff-ai/etna - etna 1.12.0

Highlights:

  • ETNA native MLPModel
  • to_dict method in all the etna objects
  • DirectEnsemble implementing 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.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]https://github.com/tinkoff-ai/etna/pull/904)
  • Fix ci invalid cache (#896)

- Python
Published by alex-hse-repository over 3 years ago

https://github.com/tinkoff-ai/etna - etna 1.11.1

Full changelog:

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)

- Python
Published by martins0n over 3 years ago

https://github.com/tinkoff-ai/etna - 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_future parameter 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 plotcorrelationmatrix (#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 plotfeaturerelevance 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)

- Python
Published by martins0n over 3 years ago

https://github.com/tinkoff-ai/etna - etna 1.10.0

Highlights:

  • BATS, TBATS and AutoArima models
  • Fix of empirical prediction intervals

Full changelog:

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 plotanomalies and plotclusters, 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 crosscorrplot (#691)
  • Fix bugs and documentation for plotbacktest and plotbacktest_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)

- Python
Published by martins0n over 3 years ago

https://github.com/tinkoff-ai/etna - etna 1.9.0

Added

  • Add plotmetricper_segment (#658)
  • Add metricpersegmentdistributionplot (#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])

- Python
Published by iKintosh almost 4 years ago

https://github.com/tinkoff-ai/etna - etna 1.8.0

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 predictionactualscatter_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 incolumn to plotanomalies, plotanomaliesinteractive (#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 customtransformand_model notebook (#651)
  • Fix MyBinder bug with dependencies (#650)

- Python
Published by julia-shenshina almost 4 years ago

https://github.com/tinkoff-ai/etna - etna 1.7.0

Highlights:

  • New plots (a lot!): imputation, trend, change points, residuals, qq-plot, feature relevance, stl.
  • New regressors logic in TSDatasets, Transforms and Models
  • Added jupyter notebook with regressors example
  • Prediction intervals visualization in plot_forecast
  • Detrending could be polynomial
  • Added installation instruction for M1
  • Fixed TSDataset when plot method does not plot all required segments
  • VotingEnsemble allows to set weights of estimator as weights of pipelines

Full changelog:

Added

  • Regressors logic to TSDatasets init (https://github.com/tinkoff-ai/etna/pull/357)
  • FutureMixin into some transforms (https://github.com/tinkoff-ai/etna/pull/361)
  • Regressors updating in TSDataset transform loops (https://github.com/tinkoff-ai/etna/pull/374)
  • Regressors handling in TSDataset makefuture and traintest_split (https://github.com/tinkoff-ai/etna/pull/447)
  • Prediction intervals visualization in plot_forecast (https://github.com/tinkoff-ai/etna/pull/538)
  • Add plot_imputation (https://github.com/tinkoff-ai/etna/pull/598)
  • Add plottimeserieswithchange_points function (https://github.com/tinkoff-ai/etna/pull/534)
  • Add plot_trend (https://github.com/tinkoff-ai/etna/pull/565)
  • Add findchangepoints function (https://github.com/tinkoff-ai/etna/pull/521)
  • Add option daynumberin_year to DateFlagsTransform (https://github.com/tinkoff-ai/etna/pull/552)
  • Add plot_residuals (https://github.com/tinkoff-ai/etna/pull/539)
  • Add get_residuals (https://github.com/tinkoff-ai/etna/pull/597)
  • Create PerSegmentBaseModel, PerSegmentPredictionIntervalModel (https://github.com/tinkoff-ai/etna/pull/537)
  • Create MultiSegmentModel (https://github.com/tinkoff-ai/etna/pull/551)
  • Add qq_plot (https://github.com/tinkoff-ai/etna/pull/604)
  • Add regressors example notebook (https://github.com/tinkoff-ai/etna/pull/577)
  • Create EnsembleMixin (https://github.com/tinkoff-ai/etna/pull/574)
  • Add option season_number to DateFlagsTransform (https://github.com/tinkoff-ai/etna/pull/567)
  • Create BasePipeline, add prediction intervals to all the pipelines, move parameter n_fold to forecast (https://github.com/tinkoff-ai/etna/pull/578)
  • Add stl_plot (https://github.com/tinkoff-ai/etna/pull/575)
  • Add plotfeaturesrelevance (https://github.com/tinkoff-ai/etna/pull/579)
  • Add community section to README.md (https://github.com/tinkoff-ai/etna/pull/580)
  • Create AbstaractPipeline (https://github.com/tinkoff-ai/etna/pull/573)
  • Option "auto" to weights parameter of VotingEnsemble, enables to use feature importance as weights of base estimators (https://github.com/tinkoff-ai/etna/pull/587)

Changed

  • Change the way ProphetModel works with regressors (https://github.com/tinkoff-ai/etna/pull/383)
  • Change the way SARIMAXModel works with regressors (https://github.com/tinkoff-ai/etna/pull/380)
  • Change the way Sklearn models works with regressors (https://github.com/tinkoff-ai/etna/pull/440)
  • Change the way FeatureSelectionTransform works with regressors, rename variables replacing the "regressor" to "feature" (https://github.com/tinkoff-ai/etna/pull/522)
  • Add table option to ConsoleLogger (https://github.com/tinkoff-ai/etna/pull/544)
  • Installation instruction (https://github.com/tinkoff-ai/etna/pull/526)
  • Update plot_forecast for multi-forecast mode (https://github.com/tinkoff-ai/etna/pull/584)
  • Trainer kwargs for deep models (https://github.com/tinkoff-ai/etna/pull/540)
  • Update CONTRIBUTING.md (https://github.com/tinkoff-ai/etna/pull/536)
  • Rename _CatBoostModel, _HoltWintersModel, _SklearnModel (https://github.com/tinkoff-ai/etna/pull/543)
  • Add logging to TSDataset.make_future, log repr of transform instead of class name (https://github.com/tinkoff-ai/etna/pull/555)
  • Rename _SARIMAXModel and _ProphetModel, make SARIMAXModel and ProphetModel inherit from PerSegmentPredictionIntervalModel (https://github.com/tinkoff-ai/etna/pull/549)
  • Update get_started section in README (https://github.com/tinkoff-ai/etna/pull/569)
  • Make detrending polynomial (https://github.com/tinkoff-ai/etna/pull/566)
  • Update documentation about transforms that generate regressors, update examples with them (https://github.com/tinkoff-ai/etna/pull/572)
  • Fix that segment is string (https://github.com/tinkoff-ai/etna/pull/602)
  • Make LabelEncoderTransform and OneHotEncoderTransform multi-segment (https://github.com/tinkoff-ai/etna/pull/554)

Fixed

  • Fix TSDataset.updateregressors logic removing the regressors (https://github.com/tinkoff-ai/etna/pull/489)
  • Fix TSDataset.info, TSDataset.describe methods (https://github.com/tinkoff-ai/etna/pull/519)
  • Fix regressors handling for OneHotEncoderTransform and HolidayTransform (https://github.com/tinkoff-ai/etna/pull/518)
  • Fix wandb summary issue with custom plots (https://github.com/tinkoff-ai/etna/pull/535)
  • Small notebook fixes (https://github.com/tinkoff-ai/etna/pull/595)
  • Fix import Literal in plotters (https://github.com/tinkoff-ai/etna/pull/558)
  • Fix plot method bug when plot method does not plot all required segments (https://github.com/tinkoff-ai/etna/pull/596)
  • Fix dependencies for ARM (https://github.com/tinkoff-ai/etna/pull/599)
  • [BUG] nn models make forecast without inverse_transform (https://github.com/tinkoff-ai/etna/pull/541)

- Python
Published by iKintosh almost 4 years ago

https://github.com/tinkoff-ai/etna - etna 1.6.3

Highlights:

  • Fix for version incompatibility of scipy and statsmodels

Full changelog:

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)

- Python
Published by martins0n about 4 years ago

https://github.com/tinkoff-ai/etna - etna 1.6.2

Full changelog:

Added

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

Fixed

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

- Python
Published by iKintosh about 4 years ago

https://github.com/tinkoff-ai/etna - etna 1.6.1

Full changelog:

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)

- Python
Published by iKintosh about 4 years ago

https://github.com/tinkoff-ai/etna - etna 1.6.0

Highlights:

  • New transforms for feature engineering: DifferencingTransform, OneHotEncoderTransform, LabelEncoderTransform, MADTransform.
  • New transform for feature selection: MRMRFeatureSelectionTransform.
  • Warnings in docstrings about possible look-ahead bias in case of using some transfroms.
  • Version update of sklearn, pytorch-forecasting and PytorchForecastingTransform api minor changes.
  • Fixes for SARIMAX non-default parameters.
  • TSDataset.describe method for high-level information about provided time series: % of missing values, number of segments, first and last dates and etc.

Full changelog:

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)

- Python
Published by martins0n about 4 years ago

https://github.com/tinkoff-ai/etna - etna 1.5.0

Highlights:

  • We extend our family of loggers by adding S3FileLogger and LocalFileLogger. They partially duplicate behaviour of WandbLogger: you can run multiple experiments (via Optuna, HyperOpt or cutom loop as example) with different hyperparameters and transformers, save results locally or on S3 and analyze results afterwards.
  • HolidayTransfrom on the base of holidays library.
  • Bug fixies for prediction intervals - now they change after inverse_transform like target.
  • We change behaviour of fit_transform:
    • before we raised error if some timeseries ended on NaN values
    • now checking will be made only before forecasting phase, so you can fill NaNs with TimeSeriesImputerTransform and make predictions without raised errors. ## N.B. Special thanks to @Gewissta and his videos about timeseries analysis with ETNA library
  • Part 1 (Russian)
  • Part 2 (Russian)

Full changelog:

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)

- Python
Published by martins0n about 4 years ago

https://github.com/tinkoff-ai/etna - etna 1.4.2

  • Fix docs generation

- Python
Published by iKintosh about 4 years ago

https://github.com/tinkoff-ai/etna - etna 1.4.1

  • Made Model, PerSegmentModel, PerSegmentWrapper imports more convenient
  • Docs now have all neural networks models
  • Speed up _check_regressors and _merge_exog

- Python
Published by iKintosh about 4 years ago

https://github.com/tinkoff-ai/etna - etna 1.4.0

Hi! In this release we have focused on speed and bug fixes.

Added

  • ACF plot

Changed

  • Add ts.inverse_transform as final step at Pipeline.fit method
  • Make testts optional in plotforecast
  • Speed up inference for multisegment regression models
  • Speed up Pipeline.getbacktest_forecasts
  • Speed up SegmentEncoderTransform
  • Wandb Logger does not work unless pytorch is installed

Fixed

  • Get rid of lambda in DensityOutliersTransform and getanomaliesdensity
  • Fixed import in transforms
  • Pickle DTWClustering

Removed

  • Remove TimeSeriesCrossValidation

- Python
Published by iKintosh about 4 years ago

https://github.com/tinkoff-ai/etna - etna 1.3.3

Added: - RelevanceTable can return rank - GaleShapleyFeatureSelectionTransform based one Gale-Shapley algorithm - FilterFeaturesTransform for selecting features from TSDataset while feature engineering - ResampleWithDistributionTransform helps to resample features according to the other feature distribution - Spell checks in ci

Changed: - Rename confidence interval to prediction interval, start working with quantiles instead of interval_width - Changed format of forecast and test dataframes in WandbLogger

- Python
Published by martins0n over 4 years ago

https://github.com/tinkoff-ai/etna - etna 1.3.2

Minor addition: - Add sum for omegaconf resolvers

- Python
Published by iKintosh over 4 years ago

https://github.com/tinkoff-ai/etna - etna 1.3.1

Also we remove restriction on version of pandas

- Python
Published by iKintosh over 4 years ago

https://github.com/tinkoff-ai/etna - etna 1.3.0

We are happy to announce 1.3.0 version of the etna library!

We focused on making etna even more user friendly as well as added new features.

We have added:

  • CLI for backtesting
  • MeanSegmentEncoderTransform
  • Several feature relevance algorithms
  • TreeFeatureSelectionTransform

We have fixed:

  • Bugs in loggers when aggregate_metrics=True
  • Bug when TSDataset did not create future if exogenous data has empty future
  • links in CLI documentation

- Python
Published by iKintosh over 4 years ago

https://github.com/tinkoff-ai/etna - :bomb: PRE-release 1.3.0-alpha.0

In progress...

In this prerelease we are testing optional dependencies. Be careful!

Docs available at https://unstable--etna-docs.netlify.app

- Python
Published by iKintosh over 4 years ago

https://github.com/tinkoff-ai/etna - etna 1.2.0

Boom! Huge update!

Added

  • Even more documentation
  • Even more Jupyter Notebooks with examples
  • Pipeline class, helps unite models and transforms
  • Ensemble classes, helps unite models
  • AutoRegressivePipeline
  • Add confidence intervals to pipelines, models and transforms
  • Add new Transforms
  • Add clustering methods

Changed

  • backtest moved to Pipeline class

Fixed

  • pandas bugs
  • TSDataset.to_dataset bug

More in our Changelog

- Python
Published by iKintosh over 4 years ago

https://github.com/tinkoff-ai/etna - :bomb: PRE-release 1.2.0-alpha.1

Fix bug in TSDataset

- Python
Published by iKintosh over 4 years ago

https://github.com/tinkoff-ai/etna - :bomb: PRE-release 1.2.0-alpha.0

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)

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)

Fixed

  • Set default value of TSDataset.head method (#170)
  • Categorical and fillna issues with pandas >=1.2 (#190)

- Python
Published by martins0n over 4 years ago

https://github.com/tinkoff-ai/etna - etna 1.1.3

This is a hot fix release. This update is recommended for installation for all etna users!

  • Limit version of pandas by 1.2

- Python
Published by iKintosh over 4 years ago

https://github.com/tinkoff-ai/etna - etna 1.1.2

Just some bug fixes:

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)

- Python
Published by iKintosh over 4 years ago

https://github.com/tinkoff-ai/etna - :bomb: PRE-release 1.1.2-alpha.0

In progress... Fixing bugs

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)

- Python
Published by iKintosh over 4 years ago

https://github.com/tinkoff-ai/etna - etna 1.1.1

- Python
Published by iKintosh over 4 years ago

https://github.com/tinkoff-ai/etna - etna 1.1.0

In this release we focused on adding even more features to our library. Please meet new models and transforms:

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

Fixed

  • Documentation fixes (#55, #53, #52)
  • Solved warning in LogTransform and AddConstantTransform (#26)
  • Regressors does not have enough history bug (#35)
  • makefuture(1) and makefuture(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))

- Python
Published by iKintosh over 4 years ago

https://github.com/tinkoff-ai/etna - etna 1.0.0

This is our first release 🎉 More to come! Stay tuned!

Added

  • Models
    • CatBoost
    • Prophet
    • Seasonal Moving Average
    • Naive
    • Linear
  • Transforms
    • Rolling statistics
    • Trend removal
    • Segment encoder
    • Datetime flags
    • Sklearn skalers (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)
  • Matrics (MAE, MAPE, SMAPE, MedAE, MSE, MSLE, R^2)
  • EDA mehods
    • Outliers detection
    • PACF plot
    • Cross correlation plot
    • Destribution plot
    • Anomalies (Outliers) plot
    • Backtest (CrossValidation) plot
    • Forecast plot

- Python
Published by iKintosh over 4 years ago