Changelog#

All notable changes to this project will be documented in this file. We keep track of changes in this file since v0.4.0. The format is based on Keep a Changelog and we adhere to Semantic Versioning. The source code for all releases is available on GitHub.

Note

To stay up-to-date with sktime releases, subscribe to sktime here or follow us on Twitter.

For upcoming changes and next releases, see our milestones. For our long-term plan, see our Roadmap.

Version 0.12.0 - 2022-06-12#

Highlights#

  • Time series classification: deep learning based algorithms, port of sktime-dl into sktime (#2447) @TonyBagnall

  • forecasting data splitters now support hierarchical data (#2599) @fkiraly

  • Updated forecasting and classification notebooks (#2620, #2641) @fkiraly

  • frequently requested algorithm: Kalman filter transformers (#2611) @NoaBenAmi @lielleravid

  • frequently requested algorithm: top-down reconciler based on forecast proportions (#2664) @ciaran-g

  • frequently requested algorithm: empirical and conformal prediction intervals after Stankeviciute et al, 2021 (#2542, #2706) @bethrice44 @fkiraly

Dependency changes#

  • new soft dependencies: pykalman and filterpy (for Kalman filter transformers)

Core interface changes#

BaseObject#

  • all estimators now reset and execute __init__ at the start of fit (#2562) @fkiraly. Pre fit initialization and checks can therefore also be written at the end of __init__ now.

  • all estimators now possess a clone method which is function equivalent to sklearn’s’ clone (#2565) @fkiraly.

Forecasting#

  • ExpandingWindowSplitter with data individually added is now default cv in BaseForecaster.update_predict (#2679) @fkiraly. Previously, not specifying cv would result in an error.

Performance metrics#

  • performance metrics have a new base class design and inheritance structure. See BaseForecastingErrorMetric docstring documentation. Changes to the interface are downwards compatible and lay the groundwork for further refactoring.

Time series regression#

  • TSR base class was updated to an interface that parallels BaseClassifier (#2647) @fkiraly. See the base class docstrings for specification details.

Deprecations and removals#

Data types, checks, conversions#

  • removed: instance_index and time_index args from from_multi_index_to_3d_numpy. Use convert or convert_to instead.

Forecasting#

  • removed: tag fit-in-predict, now subsumed under fit_is_empty

  • deprecated: HCrystalBallForecaster, will be removed in 0.13.0. See #2677.

Performance metrics#

  • changed: set symmetric hyper-parameter default to True in all relative performance metrics.

  • deprecated: func and name args will be removed from all performance metric constructors in 0.13.0. If these attributes are needed, they should be object or class attributes, and can be optional constructor arguments. However, it will no longer be required that all performance metrics have func and name as constructor arguments.

  • deprecated: the greater_is_better property will be replaced by the greater_is_better tag, in 0.13.0. Until then, implementers should set the greater_is_better tag. Users can still call the greater_is_better property until 0.13.0, which will alias the greater_is_better tag, if set.

Time series classification#

  • deprecated: "capability:early_prediction" will be removed in 0.13.0 from BaseClassifier descendants. Early classifiers should inherit from the learning task specific base class BaseEarlyClassifier instead.

Transformations#

  • removed: tag fit-in-transform, now subsumed under fit_is_empty

  • removed: FeatureUnion’s preserve_dataframe parameter

  • removed: series_as_features.compose module, contents are in transformations.compose

  • removed: transformations.series.window_summarize module, contents are in transformations.series.summarize

  • changed: "drift", "mean", "median", "random" methods of Imputer now use the training set (fit arguments) to compute parameters. For pre-0.12.0 behaviour, i.e., using the transform set, wrap the Imputer in the FitInTransform compositor.

Enhancements#

BaseObject#

Data types, checks, conversions#

  • [ENH] Add support to get_slice for multi-index and hierarchical data (#2761) @bethrice44

Distances, kernels#

Forecasting#

  • [ENH] early fit for NaiveVariance (#2546) @fkiraly

  • [ENH] empirical and conformal probabilistic forecast intervals (Stankeviciute et al, 2021) (#2542 #2706) @bethrice44 @fkiraly

  • [ENH] BaseSplitter extension: hierarchical data, direct splitting of series (#2599) @fkiraly

  • [ENH] Top-down reconciler based on forecast proportions (#2664) @ciaran-g

  • [ENH] HCrystalBallForecaster deprecation (#2675) @aiwalter

  • [ENH] add int handling to Prophet (#2709) @fkiraly

  • [ENH] Compositor for forecasting of exogeneous data before using in exogeneous forecaster (#2674) @fkiraly

  • [ENH] add ExpandingWindowSplitter as default cv in BaseForecaster.update_predict (#2679) @fkiraly

Performance metrics#

  • [ENH] new probabilistic metrics for interval forecasts - empirical coverage, constraint violation (#2383) @eenticott-shell

  • [ENH] metrics rework part II - metrics internal interface refactor (#2500) @fkiraly

  • [ENH] metrics rework part III - folding metric mixins into intermediate class, interface consolidation (#2502) @fkiraly

  • [ENH] tests for probabilistic metrics (#2683) @eenticott-shell

Pipelines#

  • [ENH] make_pipeline utility to create linear pipelines of any type (#2643) @fkiraly

Time series classification and regression#

  • [ENH] Transfer deep learning classifiers and regressors from sktime-dl (#2447) @TonyBagnall

  • [ENH] Proximity forest, removal of legacy conversion (#2518) @fkiraly

  • [ENH] update TSR base class, kNN time series regression (#2647) @fkiraly

  • [ENH] DummyClassifier, naive classifier baseline (#2707) @ZiyaoWei

  • [ENH] pipeline for time series classification from sktime transformers and sklearn classifiers (#2718) @fkiraly

Transformations#

Testing framework#

  • [ENH] allow different import and package names in soft dependency check (#2545) @fkiraly

  • [ENH] option to exclude tests/fixtures in check_estimator (#2756) @fkiraly

  • [ENH] make_mock_estimator passing constructor args for the mocked class (#2686) @ltsaprounis

  • [ENH] test_update_predict_predicted_index for continuous data (#2701) @ltsaprounis

  • [ENH] interface compliance test to ensure sklearn compliance of constructor (#2732) @fkiraly

  • [ENH] check_estimators to run without soft dependencies (#2779) @fkiraly

  • [ENH] forecasting pipeline test which triggers conversions and failure condition in #2739 (#2790) @fkiraly

  • [ENH] expose estimator method iteration in TestAllEstimators as test fixture (#2781) @fkiraly

Governance#

Fixes#

Clustering#

  • [BUG] fixed constructor non-compliance with sklearn: TimeSeriesKMeans (#2773) @fkiraly

Data types, checks, conversions#

  • [BUG] fix pd.Series to pd.DataFrame mtype conversion in case series has a name (#2607) @fkiraly

  • [BUG] corrected Series to Panel conversion for numpy formats (#2638) @fkiraly

Distances, kernels#

Forecasting#

  • [BUG] Fix incorrect update_predict arg default and docstring on cv arg (#2589) @aiwalter

  • [BUG] Fix Prophet with logistic growth #1079 (#2609) @k1m190r

  • [BUG] ignores-exogeneous-X tag correction for UnobservedComponents (#2666) @fkiraly

  • [BUG] fixed StackingForecaster for exogeneous data (#2667) @fkiraly

  • [BUG] fixed pmdarima interface index handling if X index set is strictly larger than y index set (#2673) @fkiraly

  • [BUG] Fix duration to int coercion for pd.tseries.offsets.BaseOffset (#2726) @khrapovs

  • [BUG] fixed overlap in NaiveVariance train/test set due to inclusive indexing for timestamp limits (#2760) @bethrice44

  • [BUG] fixed constructor non-compliance with sklearn: AutoETS (#2736) @fkiraly

  • [BUG] fixed constructor non-compliance with sklearn: UnobservedComponents (#2773) @fkiraly

  • [BUG] fixed sarimax_kwargs in ARIMA and AutoARIMA being incompliant with scikit-learn interface (#2731, #2773) @fkiraly

  • [BUG] add patch to ensure column/name preservation in NaiveForecaster (#2793) @fkiraly

Time series classification and regression#

  • [BUG] fixing constructor non-compliance with sklearn: KNeighborsTimeSeriesClassifier and KNeighborsTimeSeriesRegressor (#2737, #2773) @fkiraly

Transformations#

  • [BUG] Fixed fit method of Imputer (#2362) @aiwalter

  • [BUG] fix typo in author variable for boxcox module (#2642) @fkiraly

  • [BUG] TransformerPipeline fix for vectorization edge cases and sklearn transformers (#2644) @fkiraly

  • [BUG] SummaryTransformer multivariate output fix and tests for series-to-primitives transform output (#2720) @fkiraly

  • [BUG] fixing constructor non-compliance with sklearn: PCATransformer (#2734) @fkiraly

Maintenance#

  • [MNT] Added pytest flags to setup.cfg (#2535) @aiwalter

  • [MNT] Added deprecation warning for HCrystalBallForecaster (#2675) @aiwalter

  • [MNT] Replace deprecated argument squeeze with the method .squeeze(“columns”) in pd.read_csv (#2693) @khrapovs

  • [MNT] Replace pandas.DataFrame.append with pandas.concat to address future deprecation (#2723) @khrapovs

  • [MNT] Add [MNT] tag to PR template (#2727) @khrapovs

  • [MNT] Removed redundant todo from transformer_simple extension template (#2740) @NoaBenAmi

  • [MNT] Address various future warnings from pandas and numpy (#2725) @khrapovs

  • [MNT] testing sktime without softdeps (#2719) @fkiraly

  • [MNT] remove accidental codecov overwrite from nosoftdeps (#2782) @fkiraly

  • [MNT] deprecation actions scheduled for 0.12.0 release (#2747) @fkiraly

Refactored#

Documentation#

Contributors#

@aiwalter, @asattiraju13, @bethrice44, @chrisholder, @ciaran-g, @DBCerigo, @dougollerenshaw, @eenticott-shell, @fkiraly, @k1m190r, @keepersas, @khrapovs, @lbventura, @lielleravid, @ltsaprounis, @miraep8, @NoaBenAmi, @Ris-Bali, @ZiyaoWei

Version 0.11.4 - 2022-05-13#

Highlights#

  • maintenance update for compatibility with recent scikit-learn 1.1.0 release

Dependency changes#

  • Added defensive upper bound scikit-learn<1.2.0

Maintenance#

Enhancements#

BaseObject#

  • [ENH] components retrieval utility and default BaseForecaster._update(update_params=False) for composites (#2596) @fkiraly

Clustering#

Data types, checks, conversions#

  • [ENH] more informative error message from mtype if no mtype can be identified (#2606) @fkiraly

Distances, kernels#

Forecasting#

  • [ENH] Extended sliding and expanding window splitters to allow timdelta forecasting horizon (#2551) @khrapovs

  • [ENH] Removed interval_width parameter of Prophet (#2630) @phershbe

Time series classification#

Transformations#

Fixes#

BaseObject#

Clustering#

Forecasting#

  • [BUG] Forecasting pipeline get/set params fixed for dunder generated pipelines (#2619) @fkiraly

Testing framework#

  • [BUG] fixing side effects between test runs of the same test in the test suite (#2558) @fkiraly

Contributors#

@chrisholder, @ciaran-g, @fkiraly, @khrapovs, @miraep8, @phershbe, @Ris-Bali, @TonyBagnall

Version 0.11.3 - 2022-04-29#

Highlights#

  • sktime is now compatible with scipy 1.8.X versions (#2468, #2474) @fkiraly

  • dunder method for forecasting pipelines: write trafo * forecaster * my_postproc for TransformedTargetForecaster pipeline (#2404) @fkiraly

  • dunder method for multiplexing/autoML: write forecaster1 | forecaster2 | forecaster3 for MultiplexForecaster, used in tuning over forecasters (#2540) @miraep8

  • dunders combine with existing transformer pipeline and feature union, e.g., trafo1 * trafo2 * forecaster or (trafo1 + trafo2) * forecaster

  • prediction intervals for UnobservedComponents forecaster (#2454) @juanitorduz

  • new argument return_tags of all_estimators allows listing estimators together with selected tags (#2410) @miraep8

Dependency changes#

  • Upper bound on scipy relaxed to scipy<1.9.0, sktime is now compatible with scipy 1.8.X versions.

Core interface changes#

All Estimators#

All estimators now have a reset method which resets objects a clean post-init state, keeping hyper-parameters. Equivalent to clone but overwrites self.

Forecasting#

Forecasters have two new dunder methods. Invoke dunders for easy creation of a pipeline object:

  • * with a transformer creates forecasting pipeline, e.g., my_trafo1 * my_forecaster * my_postproc. Transformers before the forecaster are used for pre-processing in a TransformedTargetForecaster. Transformers after the forecaster are used for post-processing in a TransformedTargetForecaster.

  • | with another forecaster creates a multiplexer, e.g., forecaster1 | forecaster2 | forecaster 3. Result is of class MultiplexForecaster which can be combined with grid search for autoML style tuning.

Dunder methods are compatible with existing transformer dunders * (pipeline) and + (feature union).

Forecaster update_predict now accepts an additional boolean argument reset_forecaster. If reset_forecaster = True (default and current intended behaviour), forecaster state does not change. If reset_forecaster = False, then update, predict sequence updates state.

In 0.13.0, the default will change to reset_forecaster = False.

Deprecations#

Forecasting#

Forecaster update_predict default behaviour will change from reset_forecaster = True to reset_forecaster = False, from 0.13.0 (see above).

Transformations#

Differencer: drop_na argument will be deprecated from 0.12.0 and removed in 0.13.0. It will be replaced bz the na_handling argument and a default of "fill_zero".

WindowSummarizer: lag_config will be deprecated from 0.12.0 and removed in 0.13.0. It will be replaced by the lag_feature argument and new specification syntax for it.

Enhancements#

BaseObject#

Data types, checks, conversions#

  • [ENH] new _make_panel utility, separate from _make_panel_X, with arbitrary return mtype (#2505) @fkiraly

Forecasting#

  • [ENH] prediction intervals for UnobservedComponents forecaster (#2454) @juanitorduz

  • [ENH] remove error message on exogeneous X from DirRec reducer (#2463) @fkiraly

  • [ENH] replace np.arange by np.arghwere in splitters to enable time based indexing and selection (#2394) @khrapovs

  • [ENH] Test SingleWindowSplitter with Timedelta forecasting horizon (#2392) @khrapovs

  • [ENH] Aggregator: remove index naming requirement (#2479) @ciaran-g

  • [ENH] MultiplexForecaster compatibility with multivariate, probabilistic and hierarchical forecasting (#2458) @fkiraly

  • [ENH] Differencer NA handling - “fill zero” parameter (#2487) @fkiraly

  • [ENH] Add random_state to statsmodels adapter and estimators (#2440) @ris-bali

  • [ENH] Added tests for MultiplexForecaster (#2520) @miraep8

  • [ENH] Added | dunder method for MultiplexForecaster (#2540) @miraep8

Registry#

  • [ENH] add new argument return_tags to all_estimators (#2410) @miraep8

Testing framework#

Transformations#

Fixes#

Clustering#

  • [BUG] Fixed medoids in kmedoids being taken across all data instead of cluster-wise (#2548) @chrisholder

Data types, checks, conversions#

  • [BUG] fixing direct conversions from/to numpyflat mtype being overriden by indirect ones (#2517) @fkiraly

Distances, kernels#

  • [BUG] Distances fixed bug where bounding matrix was being rounded incorrectly (#2549) @chrisholder

Forecasting#

  • [BUG] refactor _predict_moving_cutoff and bugfix, outer update_predict_single should be called (#2466) @fkiraly

  • [BUG] fix ThetaForecaster.predict_quantiles breaking on pd.DataFrame input (#2529) @fkiraly

  • [BUG] bugfix for default _predict_var implementation (#2538) @fkiraly

  • [BUG] ensure row index names are preserved in hierarchical forecasting when vectorizing (#2489) @fkiraly

  • [BUG] Fix type checking error due to pipeline type polymorphism when constructing nested pipelines (#2456) @fkiraly

  • [BUG] fix for update_predict state handling bug, replace detached cutoff by deepcopy (#2557) @fkiraly

  • [BUG] Fixes the index name dependencies in WindowSummarizer (#2567) @ltsaprounis

  • [BUG] Fix non-compliant output of ColumnEnsembleForecaster.pred_quantiles, pred_interval (#2512) @eenticott-shell

Time series classification#

  • [BUG] fixed ColumnEnsembleClassifier handling of unequal length data (#2513) @fkiraly

Transformations#

  • [BUG] remove alpha arg from _boxcox, remove private method dependencies, ensure scipy 1.8.0 compatibility (#2468) @fkiraly

  • [BUG] fix random state overwrite in MiniRocketMultivariate (#2563) @fkiraly

Testing framework#

  • [BUG] fix accidental overwrite of default method/arg sequences in test scenarios (#2457) @fkiraly

Refactored#

  • [ENH] changed references to fit-in-transform to fit_is_empty (#2494) @fkiraly

  • [ENH] cleaning up _panel._convert module (#2519) @fkiraly

  • [ENH] Legacy test refactor - move test_data_processing, mtype handling in test_classifier_output (#2506) @fkiraly

  • [ENH] MockForecaster without logging, MockUnivariateForecaster clean-up (#2539) @fkiraly

  • [ENH] metrics rework part I - output format tests (#2496) @fkiraly

  • [ENH] simplify load_from_tsfile, support more mtypes (#2521) @fkiraly

  • [ENH] removing dead args and functions post _predict_moving_cutoff refactor (#2470) @fkiraly

Maintenance#

  • [MNT] upgrade codecov uploader and cleanup coverage reporting (#2389) @tarpas

  • [MNT] fix soft dependency handling for esig imports (#2414) @fkiraly

  • [MNT] Make the contrib module private (#2422) @MatthewMiddlehurst

  • [MNT] disabling aggressive dtw_python import message (#2439) @KatieBuc

  • [MNT] loosen strict upper bound on scipy to 1.9.0 (#2474) @fkiraly

  • [MNT] Remove accidentally committed prob integration notebook (#2476) @eenticott-shell

  • [MNT] speed up Facebook Prophet tests (#2497) @fkiraly

  • [MNT] Proximity forest faster test param settings (#2525) @fkiraly

  • [MNT] Fix tests to prevent all guaranteed check_estimator failures (#2411) @danbartl

  • [MNT] added pytest-timeout time limit of 10 minutes (#2532, #2541) @fkiraly

  • [MNT] turn on tests for no state change in transform, predict (#2536) @fkiraly

  • [MNT] switch scipy mirror to anaconda on windows to resolve gfortran FileNotFoundError in all CI/CD (#2561) @fkiraly

  • [MNT] Add a script to generate changelog in rst format (#2449) @lmmentel

Documentation#

  • [DOC] Added clustering module to API docs (#2429) @aiwalter

  • [DOC] updated datatypes notebook (#2492) @fkiraly

  • [DOC] Broken Links in Testing Framework Doc (#2450) @Tomiiwa

  • [DOC] remove GSoC announcement from landing page after GSoC deadline (#2543) @GuzalBulatova

  • [DOC] fix typo in sktime install instructions, causes “invalid requirement error” if followed verbatim (#2503) @Samuel-Oyeneye

Contributors#

@aiwalter, @chrisholder, @ciaran-g, @danbartl, @eenticott-shell, @fkiraly, @GuzalBulatova, @juanitorduz, @KatieBuc, @khrapovs, @lmmentel, @ltsaprounis, @MatthewMiddlehurst, @miraep8, @ris-bali, @Samuel-Oyeneye, @tarpas, @Tomiiwa

Version 0.11.2 - 2022-04-11#

Fixes#

  • [BUG] temp workaround for unnamed levels in hierarchical X passed to aggregator (#2432) @fkiraly

  • [BUG] forecasting pipeline dunder fix by (#2431) @fkiraly

  • [BUG] fix erroneous direct passthrough in ColumnEnsembleForecaster (#2436) @fkiraly

  • [BUG] Incorrect indices returned by make_reduction on hierarchical data fixed by (#2438) @danbartl

Version 0.11.1 - 2022-04-10#

Highlights#

  • GSoC 2022 application instructions - apply by Apr 19 for GSoC with sktime! (#2373) @lmmentel @Lovkush-A @fkiraly

  • enhancements and bugfixes for probabilistic and hierarchical forecasting features introduced in 0.11.0

  • reconciliation transformers for hierarchical predictions (#2287, #2292) @ciaran-g

  • pipeline, tuning and evaluation compabitility for probabilistic forecasting (#2234, #2318) @eenticott-shell @fkiraly

  • interface to statsmodels SARIMAX (#2400) @TNTran92

  • reduction with transform-on-y predictors (e.g., lags, window summaries), and for hierarchical data (#2396) @danbartl

Core interface changes#

Data types, checks, conversions#

  • the pd-multiindex mtype was relaxed to allow arbitrary level names

Forecasting#

  • probabilistic forecasting interface now also available for auto-vectorization cases

  • probabilistic forecasting interface now compatible with hierarchical forecasting interface

Enhancements#

Data types, checks, conversions#

  • [ENH] tsf loader to allow specification of return mtype (#2103) @ltsaprounis

  • [ENH] relax name rules for multiindex - fixed omission in from_multi_index_to_nested (#2384) @ltsaprounis

Forecasting#

  • [ENH] require uniqueness from multiple alpha/coverage in interval/quantile forecasts (#2326) @fkiraly

  • [ENH] Adding fit parameters to VAR constructor #1850 (#2304) @TNTran92

  • [ENH] vectorization for probabilistic forecasting methods that return pd.DataFrame (#2355) @fkiraly

  • [ENH] adding compatibility with probabilistic and hierarchical forecasts to ForecastingPipeline and TransformedTargetForecaster (#2318) @fkiraly

  • [ENH] Allow pd.Timedelta values in ForecastingHorizon (#2333) @khrapovs

  • [ENH] probabilistic methods for ColumnEnsembleForecaster (except predict_proba) (#2356) @fkiraly

  • [ENH] NaiveVariance: verbose arg and extended docstring (#2395) @fkiraly

  • [ENH] Grid search with probabilistic metrics (#2234) @eenticott-shell

  • [ENH] wrapper for stream forecasting (update_predict use) to trigger regular refit (#2305) @fkiraly

  • [ENH] post-processing in TransformedTargetForecaster, dunder method for (transformed y) forecasting pipelines (#2404) @fkiraly

  • [ENH] suppressing deprecation messages in all_estimators estimator retrieval, address dtw import message (#2418) @katiebuc

  • [ENH] improved error message in forecasters when receiving an incompatible input (#2314) @fkiraly

  • [ENH] NaiveVariance: verbose arg and extended docstring (#2395) @fkiraly

  • [ENH] Prohibit incompatible splitter parameters (#2328) @khrapovs

  • [ENH] added interface to statsmodels SARIMAX (#2400) @TNTran92

  • [ENH] extending reducers to hierarchical data, adding transformation (#2396) @danbartl

Time series classification#

  • [ENH] Faster classifier example parameters (#2378) @MatthewMiddlehurst

  • [ENH] BaseObject.is_composite utility, relax errors in BaseClassifier input checks to warnings for composites (#2366) @fkiraly

  • [ENH] Capability inference for transformer and classifier pipelines (#2367) @fkiraly

Transformations#

  • [ENH] Implement reconcilers for hierarchical predictions - transformers (#2287) @ciaran-g

  • [ENH] Hierarchy aggregation transformer (#2292) @ciaran-g

  • [ENH] memory for WindowSummarizer to enable transform windows to reach into the fit time period (#2325) @fkiraly

Maintenance#

  • [MNT] Remove jinja2 version (#2330) @aiwalter

  • [ENH] test generation error to raise and not return (#2298) @fkiraly

  • [ENH] Remove pd.Int64Index due to impending deprecation (#2339, #2390) @khrapovs

  • [MNT] removing unused imports from tests._config (#2358) @fkiraly

  • [ENH] scenarios for hierarchical forecasting and tests for probabilistic forecast methods (#2359) @fkiraly

  • [MNT] fixing click/black incompatibility in CI (#2353, #2372) @fkiraly

  • [ENH] tests for check_estimator` tests passing (#2408) @fkiraly

  • [ENH] Fix tests to prevent guaranteed check_estimator failure (#2405) @danbartl

Refactored#

  • [ENH] remove non-compliant fit_params kwargs throughout the code base (#2343) @fkiraly

  • [ENH] Classification expected output test updates (#2295) @MatthewMiddlehurst

  • [ENH] Transformers module full refactor - part III, panel module (2nd batch) (#2253) @fkiraly

  • [ENH] Transformers module full refactor - part IV, panel module (3rd batch) (#2369) @fkiraly

  • [ENH] test parameter refactor: TSInterpolator (#2342) @NoaBenAmi

  • [ENH] move “sktime forecaster tests” into TestAllForecasters class (#2311) @fkiraly

  • [ENH] upgrade BasePairwiseTransformer to use datatypes input conversions and checks (#2363) @fkiraly

  • [ENH] extend _HeterogeneousMetaEstimator estimator to allow mixed tuple/estimator list (#2406) @fkiraly

  • [MNT] test parameter refactor: forecasting reducers and ColumnEnsembleClassifier (#2223) @fkiraly

  • [ENH] refactoring test_all_transformers to test class architecture (#2252) @fkiraly

Fixes#

Forecasting#

  • [BUG] fix _update default for late fh pass case (#2362) @fkiraly

  • [ENH] Extract cached ForecastingHorizon methods to functions and avoid B019 error (#2364) @khrapovs

  • [ENH] AutoETS prediction intervals simplification (#2320) @fkiraly

  • [BUG] fixed get_time_index for most mtypes (#2380) @fkiraly

Transformations#

  • [BUG] TSInterpolator and nested_univ check fix (#2259) @fkiraly

  • [BUG][ENH] WindowSummarizer offset fix, easier lag specification (#2316) @danbartl

  • [BUG] FeatureUnion output column names fixed (#2324) @fkiraly

  • [ENH][BUG] fixes and implementations of missing inverse_transform in transformer compositions (#2322) @fkiraly

Documentation#

  • [DOC] fix 0.11.0 release note highlights formatting (#2310) @fkiraly

  • [DOC] typo fix contsructor -> constructor in extension templates (#2348) @fkiraly

  • [DPC] fixed the issue with 'docs/source/developer_guide/testing_framework.rst' (#2335) @0saurabh0

  • [DOC] Updated conda installation instructions (#2365) @RISHIKESHAVAN

  • [DOC] updated extension templates: link to docs and reference to check_estimator (#2303) @fkiraly

  • [DOC] Improved docstrings in forecasters (#2314) @fkiraly

  • [DOC] Added docstring examples to load data functions (#2393) @aiwalter

  • [DOC] Added platform badge to README (#2398) @aiwalter

  • [DOC] Add GSoC 2022 landing page and announcement (#2373) @lmmentel

  • [DOC] In interval_based_classification example notebook, use multivariate dataset for the multivariate examples (#1822) @ksachdeva

Contributors#

@0saurabh0, @aiwalter, @ciaran-g, @danbartl, @eenticott-shell, @fkiraly, @katiebuc, @khrapovs, @ksachdeva, @lmmentel, @ltsaprounis, @MatthewMiddlehurst, @NoaBenAmi, @RISHIKESHAVAN, @TNTran92

Version 0.11.0 - 2022-03-26#

Highlights#

  • multivariate forecasting, probabilistic forecasting section in forecasting tutorial (#2041) @kejsitake

  • hierarchical & global forecasting: forecaster and transformer interfaces are now compatible with hierarchical data, automatically vectorize over hierarchy levels (#2110, #2115, #2219) @danbartl @fkiraly

  • probabilistic forecasting: predict_var (variance forecast) and predict_proba (full distribution forecast) interfaces; performance metrics for interval and quantile forecasts (#2100, #2130, #2232) @eenticott-shell @fkiraly @kejsitake

  • dunder methods for transformer and classifier pipelines: write my_trafo1 * my_trafo2 for pipeline, my_trafo1 + my_trafo2 for FeatureUnion (#2090, #2251) @fkiraly

  • Frequently requested: AutoARIMA from statsforecast package available as StatsforecastAutoARIMA (#2251) @FedericoGarza

  • for extenders: detailed “creating sktime compatible estimator” guide

  • for extenders: simplified extension templates for forecasters and transformers (#2161) @fkiraly

Dependency changes#

  • sktime has a new optional dependency set for deep learning, consisting of tensorflow and tensorflow-probability

  • new soft dependency: tslearn (required for tslearn clusterers)

  • new soft dependency: statsforecast (required for StatsforecastAutoARIMA)

Core interface changes#

Data types, checks, conversions#

  • new Hierarchical scientific type for hierarchical time series data, with mtype format pd_multiindex_hier (row-multiindexed series)

  • new Table scientific type for “ordinary” tabular (2D data frame like) data which is not time series or sequential

  • multiple mtype formats for the Table scientific type: numpy1D, numpy2D, pd_DataFrame_Table, pd_Series_Table, list_of_dict

  • new Proba scientific type for distributions and distribution like objects (used in probabilistic forecasting)

Forecasting#

  • forecasters now also accept inputs of Panel type (panel and global forecasters) and Hierarchical type (hierarchical forecasters)

  • when a forecaster is given Panel or Hierarchical input, and only Series logic is defined, the forecaster will automatically loop over (series) instances

  • when a forecaster is given Hierarchical input, and only Panel or Series logic is defined, the forecaster will automatically loop over (panel) instances

  • new probabilistic forecasting interface for probabilistic forecasts:

    • new method predict_var(fh, X, cov=False) for variance forecasts, returns time series of predictive variances

    • new method predict_proba(fh, X, marginal=True) for distribution forecasts, returns tensorflow Distribution

Time series classification#

  • dunder method for pipelining classifier and transformers: my_trafo1 * my_trafo2 * my_clf will create a ClassifierPipeline (sklearn compatible)

Transformations#

  • transformers now also accept inputs of Panel type (panel and global transformers) and Hierarchical type (hierarchical transformers)

  • when a transformer is given Panel or Hierarchical input, and only Series logic is defined, the transformer will automatically loop over (series) instances

  • when a transformer is given Hierarchical input, and only Panel or Series logic is defined, the transformer will automatically loop over (panel) instances

  • Table scientific type is used as output of transformers returning “primitives”

  • dunder method for pipelining transformers: my_trafo1 * my_trafo2 * my_trafo3 will create a (single) TransformerPipeline (sklearn compatible)

  • dunder method for FeatureUnion of transformers: my_trafo1 + my_trafo2 + my_trafo3 will create a (single) FeatureUnion (sklearn compatible)

  • transformer dunder pipeline is compatible with sklearn transformers, automatically wrapped in a TabularToSeriesAdaptor

Deprecations and removals#

Data types, checks, conversions#

Forecasting#

  • removed: return_pred_int argument in forecaster predict, fit_predict, update_predict_single. Replaced by predict_interval and predict_quantiles interface.

  • deprecated: fit-in-predict tag is deprecated and renamed to fit_is_empty. Old tag fit-in-predict can be used until 0.12.0 when it will be removed.

  • deprecated: forecasting metrics symmetric argument default will be changed to False in 0.12.0. Until then the default is True.

Transformations#

  • removed: series transformers no longer accept a Z argument - use first argument X instead (#1365, #1730)

  • deprecated: fit-in-transform tag is deprecated and renamed to fit_is_empty. Old tag fit-in-transform can be used until 0.12.0 when it will be removed.

  • deprecated: old location in series_as_features of FeatureUnion, has moved to transformations.compose. Old location is still importable from until 0.12.0.

  • deprecated: preserve_dataframe argument of FeatureUnion, will be removed in 0.12.0.

  • deprecated: old location in transformations.series.windows_summarizer of WindowSummarizer, has moved to transformations.series.summarize. Old location is still importable from until 0.12.0.

Enhancements#

Data types, checks, conversions#

  • [ENH] cutoff getter for Series, Panel, and Hierarchical mtypes (#2115) @fkiraly

  • [ENH] Gettimeindex to access index of hierarchical data (#2110) @danbartl

  • [ENH] datatypes support for interval and quantile based probabilistic predictions (#2130) @fkiraly

  • [ENH] sklearn typing util (#2208) @fkiraly

  • [ENH] Relaxing pd-multiindex mtype to allow string instance index (#2262) @fkiraly

Data sets and data loaders#

Clustering#

  • [ENH] tslearn added as soft dependency and used to add new clusterers. (#2048) @chrisholder

  • [ENH] Add user option to determine return type in single problem clustering/classification problems (#2139) @TonyBagnall

Distances, kernels#

  • [ENH] minor changes to Lcss distance (#2119) @TonyBagnall

  • [ENH] factory to add 3D capability to all distances exported by distances module (#2051) @fkiraly

Forecasting#

Time series classification#

Transformations#

  • [ENH] Univariate time series bootstrapping (#2065) @ltsaprounis

  • [ENH] changed FunctionTransformer._fit to common signature (#2205) @fkiraly

  • [ENH] Upgrade of BaseTransformer to use vectorization utility, hierarchical mtype compatibility (#2219) @fkiraly

  • [ENH] WindowSummarizer to deal with hierarchical data (#2154) @danbartl

  • [ENH] Transformer pipeline and dunder method (#2090) @fkiraly

  • [ENH] Tabular transformer adaptor “fit in transform” parameter (#2209) @fkiraly

  • [ENH] dunder pipelines sklearn estimator support (#2210) @fkiraly

Testing framework#

Governance#

Fixed#

  • [BUG] fixed state change caused by ThetaForecaster.predict_quantiles (#2108) @fkiraly

  • [BUG] _make_hierachical is renamed to _make_hierarchical (typo/bug) issue #2195 (#2196) @Vasudeva-bit

  • [BUG] fix wrong output type of PaddingTransformer._transform (#2217) @fkiraly

  • [BUG] fixing nested_dataframe_has_nans (#2216) @fkiraly

  • [BUG] Testing vectorization for forecasters, plus various bugfixes (#2188) @fkiraly

  • [BUG] fixed ignores-exogeneous-X tag for forecasting reducers (#2230) @fkiraly

  • [BUG] fixing STLBootstrapTransformer error message and docstrings (#2260) @fkiraly

  • [BUG] fix conversion interval->quantiles in BaseForecaster, and fix ARIMA.predict_interval (#2281) @fkiraly

  • [DOC] fix broken link to CoC (#2104) @mikofski

  • [BUG] Fix windows bug with index freq in VectorizedDF.__getitem__ (#2279) @ltsaprounis

  • [BUG] fixes duplication of Returns section in _predict_var docstring (#2306) @fkiraly

  • [BUG] Fixed bug with check_pdmultiindex_panel (#2092) @danbartl

  • [BUG] Fixed crash of kmeans, medoids when empty clusters are generated (#2060) @chrisholder

  • [BUG] Same cutoff typo-fix (#2193) @cdahlin

  • [BUG] Addressing doc build issue due to failed soft dependency imports (#2170) @fkiraly

  • Deprecation handling: sklearn 1.2 deprecation warnings (#2190) @hmtbgc

  • Deprecation handling: Replacing normalize by use of StandardScaler (#2167) @KishenSharma6

Documentation#

  • [DOC] forecaster tutorial: multivariate forecasting, probabilistic forecasting (#2041) @kejsitake

  • [DOC] New estimator implementation guide (#2186) @fkiraly

  • [DOC] simplified extension templates for transformers and forecasters (#2161) @fkiraly

  • [DOC] contributing page: concrete initial steps (#2227) @fkiraly

  • [DOC] adding “troubleshooting” link in sktime installation instructions (#2121) @eenticott-shell

  • [DOC] enhance distance doc strings (#2122) @TonyBagnall

  • [DOC] updated soft dependency docs with two tier check (#2182) @fkiraly

  • [DOC] replace gitter mentions by appropriate links, references (#2187) @TonyBagnall

  • [DOC] updated the environments doc with python version for sktime, added python 3.9 (#2199) @Vasudeva-bit

  • [DOC] Replaced youtube link with recent PyData Global (#2191) @aiwalter

  • [DOC] extended & cleaned docs on dependency handling (#2189) @fkiraly

  • [DOC] migrating mentoring form to sktime google docs (#2222) @fkiraly

  • [DOC] add scitype/mtype register pointers to docstrings in datatypes (#2160) @fkiraly

  • [DOC] improved docstrings for HIVE-COTE v1.0 (#2239) @TonyBagnall

  • [DOC] typo fix and minor clarification in estimator implementation guide (#2241) @fkiraly

  • [DOC] numpydoc compliance fix of simple forecasting extension template (#2284) @fkiraly

  • [DOC] typos in developer_guide.rst (#2131) @theanorak

  • [DOC] fix broken link to CoC (#2104) @mikofski

  • [DOC] minor update to tutorials (#2114) @ciaran-g

  • [DOC] various minor doc issues (#2168) @aiwalter

Maintenance#

  • [MNT] Update release drafter (#2096) @lmmentel

  • speed up EE tests and ColumnEnsemble example (#2124) @TonyBagnall

  • [MNT] add xfails in test_plotting until #2066 is resolved (#2144) @fkiraly

  • [MNT] add skips to entirety of test_plotting until #2066 is resolved (#2147) @fkiraly

  • [ENH] improved deep_equals return message if dict`s are discrepant (:pr:`2107) @fkiraly

  • [BUG] Addressing doc build issue due to failed soft dependency imports (#2170) @fkiraly

  • [ENH] extending deep_equals for ForecastingHorizon (#2225) @fkiraly

  • [ENH] unit tests for deep_equals utility (#2226) @fkiraly

  • [MNT] Faster docstring examples - ForecastingGridSearchCV, MultiplexForecaster (#2229) @fkiraly

  • [BUG] remove test for StratifiedGroupKFold (#2244) @TonyBagnall

  • [ENH] Classifier type hints (#2246) @MatthewMiddlehurst

  • Updated pre-commit link and also grammatically updated Coding Style docs (#2285) @Tomiiwa

  • Update .all-contributorsrc (#2286) @Tomiiwa

  • [ENH] Mock estimators and mock estimator generators for testing (#2197) @ltsaprounis

  • [MNT] Deprecation removal 0.11.0 (#2271) @fkiraly

  • [BUG] fixing pyproject and jinja2 CI failures (#2299) @fkiraly

  • [DOC] Update PULL_REQUEST_TEMPLATE.md so PRs should start with [ENH], [DOC] or [BUG] in title (#2293) @aiwalter

  • [MNT] add skips in test_plotting until #2066 is resolved (#2146) @fkiraly

Refactored#

Contributors#

@aiwalter, @cdahlin, @chrisholder, @ciaran-g, @danbartl, @dionysisbacchus, @eenticott-shell, @FedericoGarza, @fkiraly, @hmtbgc, @IlyasMoutawwakil, @kejsitake, @KishenSharma6, @lielleravid, @lmmentel, @ltsaprounis, @MatthewMiddlehurst, @mikofski, @RafaAyGar, @theanorak, @Tomiiwa, @TonyBagnall, @Vasudeva-bit,

[0.10.1] - 2022-02-20#

Highlights#

  • This release is mainly a maintenance patch which upper bounds scipy<1.8.0 to prevent bugs due to interface changes in scipy.

  • Once sktime is compatible with scipy 1.8.0, the upper bound will be relaxed

  • New forecaster: STLForecaster (#1963) @aiwalter

  • New transformer: lagged window summarizer transformation (#1924) @danbartl

  • Loaders for .tsf data format (#1934) @rakshitha123

Dependency changes#

  • Introduction of bound scipy<1.8.0, to prevent bugs due to interface changes in scipy

  • Once sktime is compatible with scipy 1.8.0, the upper bound will be relaxed

Added#

Documentation#

Data sets and data loaders#

Data types, checks, conversions#

  • [ENH] convert store reset/freeze behaviour & fix of bug 1976 (#1977) @fkiraly

  • [ENH] new Table mtypes: pd.Series based, list of dict (as used in bag of words transformers) (#2076) @fkiraly`

Forecasting#

  • [ENH] Added STLForecaster (#1963) @aiwalter

  • [ENH] moving forecaster test params from _config into classes - all forecasters excluding reduction (#1902) @fkiraly

Transformations#

Maintenance#

Fixed#

Contributors#

@aiwalter, @baggiponte, @chicken-biryani, @danbartl, @eenticott-shell, @fkiraly, @khrapovs, @lmmentel, @MatthewMiddlehurst, @rakshitha123, @RishiKumarRay, @Rubiel1, @Saransh-cpp, @schettino72,

[0.10.0] - 2022-02-02#

Highlights#

Dependency changes#

  • sktime now supports python 3.7-3.9 on windows, mac, and unix-based systems

  • sktime now supports, and requires, numpy>=1.21.0 and statsmodels>=0.12.1

  • sktime Prophet interface now uses prophet instead of deprecated fbprophet

  • developer install for sktime no longer requires C compilers and cython

Core interface changes#

Forecasting#

New probabilistic forecasting interface for quantiles and predictive intervals:

  • for all forecasters with probabilistic forecasting capability, i.e., capability:pred_int tag

  • new method predict_interval(fh, X, coverage) for interval forecasts

  • new method predict_quantiles(fh, X, alpha) for quantile forecasts

  • both vectorized in coverage, alpha and applicable to multivariate forecasting

  • old return_pred_int interface is deprecated and will be removed in 0.11.0

  • see forecaster base API and forecaster extension template

Convenience method to return residuals:

  • all forecasters now have a method predict_residuals(y, X, fh)

  • if fh is not passed, in-sample residuals are computed

Transformations#

Base interface refactor rolled out to series transformers (#1790, #1795):

  • fit, transform, fit_transform now accept both Series and Panel as argument

  • if Panel is passed to a series transformer, it is applied to all instances

  • all transformers now have signature transform(X, y=None) and inverse_transform(X, y=None). This is enforced by the new base interface.

  • Z (former first argument) aliases X until 0.11.0 in series transformers, will then be removed

  • X (former second argument) was not used in those transformers, was changed to y

  • see transformer base API and transformer extension template

Deprecations and removals#

Data types, checks, conversions#

  • deprecated, scheduled for removal in 0.11.0: check_is renamed to check_is_mtype, check_is to be removed in 0.11.0 (#1692) @mloning

Forecasting#

  • deprecated, scheduled for removal in 0.11.0: return_pred_int argument in forecaster predict, fit_predict, update_predict_single. Replaced by predict_interval and predict_quantiles interface.

Time series classification#

Transformations#

  • deprecated, scheduled for removal in 0.11.0: series transformers will no longer accept a Z argument - first argument Z replaced by X (#1365, #1730)

Added#

Documentation#

Data types, checks, conversions#

  • [ENH] check_is_scitype, cleaning up dists_kernels input checks/conversions (#1704) @fkiraly

  • [ENH] Table scitype and refactor of convert module (#1745) @fkiraly

  • [ENH] estimator scitype utility (#1838) @fkiraly

  • [ENH] experimental: hierarchical time series scitype hierarchical_scitype (#1786) @fkiraly

  • [ENH] upgraded mtype_to_scitype to list-like args (#1807) @fkiraly

  • [ENH] check_is_mtype to return scitype (#1789) @fkiraly

  • [ENH] vectorization/iteration utility for sktime time series formats (#1806) @fkiraly

Data sets and data loaders#

Clustering#

Distances, kernels#

  • [ENH] Composable distances interface prototype for numba distance module (#1858) @fkiraly

Forecasting#

  • [ENH] Scaled Logit Transformer (#1913, #1965) @ltsaprounis.

  • [ENH] add fit parameters to statsmodels Holt-Winters exponential smoothing interface (#1849) @fkiraly

  • [ENH] Add predict_quantiles to FBprophet (#1910) @kejsitake

  • [ENH] Add `predict_quantiles to ets, pmdarima adapter (#1874) @kejsitake

  • [ENH] Defaults for _predict_interval and _predict_coverage (#1879, #1961) @fkiraly

  • [ENH] refactored column ensemble forecaster (#1764) @Aparna-Sakshi

  • [ENH] Forecaster convenience method to return forecast residuals (#1770) @fkiraly

  • [ENH] Update extension template for predict_quantiles (#1780) @kejsitake

  • [ENH] Prediction intervals refactor: BATS/TBATS; bugfix for #1625; base class updates on predict_quantiles (#1842) @k1m190r

  • [ENH] Change _set_fh to a _check_fh that returns self._fh (#1823) @fkiraly

  • [ENH] Generalize splitters to accept timedeltas (equally spaced) (#1758) @khrapovs

Time series classification#

Transformations#

  • [ENH] Transformers module full refactor - part I, series module (#1795) @fkiraly

  • [ENH] Transformer base class DRY-ing, and inverse_transform (#1790) @fkiraly

  • [ENH] transformer base class to allow multivariate output if input is always univariate (#1706) @fkiraly

Testing module#

  • [ENH] Test refactor with scenarios (#1833) @fkiraly

  • [ENH] Test scenarios for advanced testing (#1819) @fkiraly

  • [ENH] pytest conditional fixtures (#1839) @fkiraly

  • [ENH] Test enhacements documentation (#1922) @fkiraly

  • [ENH] split tests in series_as_features into classification and regression (#1959) @tonybagnall

  • [ENH] Testing for metadata returns of check_is_mtype (#1748) @fkiraly

  • [ENH] Extended deep_equals, with precise indication of why equality fails (#1844) @fkiraly

  • [ENH] test for test_create_test_instances_and_names fixture generation method (#1829) @fkiraly

  • [ENH] Utils module housekeeping varia utils-housekeeping (#1820) @fkiraly

  • [ENH] Extend testing framework to test multiple instance fixtures per estimator (#1732) @fkiraly

Governance#

Maintenance#

  • [MNT] Switch the extra dependency from fbprophet to prophet (#1958) @lmmentel

  • [MNT] Updated code dependency version, i.e. numpy and statsmodels to reduce dependency conflicts (#1921) @lmmentel

  • [MNT] Move all the CI/CD worfklows over to github actions and drop azure pipelines and appveyor (#1620, #1920) @lmemntel

  • [MNT] Refactor legacy test config (#1792) @lmmentel

  • [FIX] Add missing init files (#1695) @mloning

  • [MNT] Add shellcheck to pre-commit (#1703) @mloning

  • [MNT] Remove assign-contributor workflow (#1702) @mloning

  • [MNT] Fail CI on missing init files (#1699) @mloning

  • [ENH] replace deprecated np.int, np.float (#1734) @fkiraly

  • [MNT] Correct the bash error propagation for running notebook examples (#1816) @lmmentel

Fixed#

  • [DOC] Fixed a typo in transformer extension template (#1901) @rakshitha123

  • [DOC] Fix typo in Setting up a development environment section (#1872) @shubhamkarande13

  • [BUG] Fix incorrect “uses X” tag for ARIMA and TrendForecaster (#1895) @ngupta23

  • [BUG] fix error when concatenating train and test (#1892) @tonybagnall

  • [BUG] Knn bugfix to allow GridsearchCV and usage with column ensemble (#1903) @tonybagnall

  • [BUG] Fixes various bugs in DrCIF, STSF, MUSE, Catch22 (#1869) @MatthewMiddlehurst

  • [BUG] fixing mixup of internal variables in detrender (#1863) @fkiraly

  • [BUG] transformer base class changes and bugfixes (#1855) @fkiraly

  • [BUG] fixed erroneous index coercion in convert_align_to_align_loc (#1911) @fkiraly

  • [BUG] bugfixes for various bugs discovered in scenario testing (#1846) @fkiraly

  • [BUG] 1523 fixing ForecastHorizon.to_absolute for freqs with anchorings (#1830) @eenticott-shell

  • [BUG] remove duplicated input checks from BaseClassifier.score (#1813) @fkiraly

  • [BUG] fixed mtype return field in check_is_scitype (#1805) @fkiraly

  • [BUG] fix fh -> self.fh in predict_interval and predict_quantiles (#1775) @fkiraly

  • [BUG] fix incorrect docstrings and resolving confusion unequal length/spaced in panel metadata inference (#1768) @fkiraly

  • [BUG] hotfix for bug when passing multivariate y to boxcox transformer (#1724) @fkiraly

  • [BUG] fixes CIF breaking with CIT, added preventative test (#1709) @MatthewMiddlehurst

  • [BUG] Correct the examples/catch22.ipynb call to transform_single_feature (#1793) @lmmentel

  • [BUG] Fixes prophet bug concerning the internal change of exogenous X (#1711) @kejsitake

  • [BUG] Fix DeprecationWarning of pd.Series in sktime/utils/tests/test_datetime.py:21 (#1743) @khrapovs

  • [BUG] bugfixes in BaseClassifier, updated base class docstrings (#1804) @fkiraly

Contributors#

@aiwalter, @amrith-shell, @Aparna-Sakshi, @AreloTanoh, @chrisholder, @eenticott-shell, @fkiraly, @k1m190r, @kejsitake, @khrapovs, @lmmentel, @ltsaprounis, @MatthewMiddlehurst, @MrPr3ntice, @mloning, @ngupta23, @rakshitha123, @RNKuhns, @shubhamkarande13, @sumit-158, @TonyBagnall,

[0.9.0] - 2021-12-08#

Highlights#

  • frequently requested: AutoARIMA get_fitted_params access for fitted order and seasonal order (#1641) @AngelPone

  • Numba distance module - efficient time series distances (#1574) @chrisholder

  • Transformers base interface refactor - default vectorization to panel data @fkiraly

  • new experimental module: Time series alignment, dtw-python interface (#1264) @fkiraly

Core interface changes#

Data types, checks, conversions#

  • check_is renamed to check_is_mtype, check_is to be deprecated in 0.10.0 (#1692) @mloning

Time series classification#

  • time series classifiers now accept 2D np.ndarray by conversion to 3D rather than throwing exception (#1604) @TonyBagnall

Transformations#

Base interface refactor (#1365, #1663, #1706):

  • fit, transform, fit_transform now accept both Series and Panel as argument

  • if Panel is passed to a series transformer, it is applied to all instances

  • all transformers now use X as their first argument, y as their second argument. This is enforced by the new base interface.

  • This was inconsistent previously between types of transformers: the series-to-series transformers were using Z as first argument, X as second argument.

  • Z (former first argument) aliases X until 0.10.0 in series transformers, will then be deprecated

  • X (former second argument) was not used in those transformers where it changed to y

  • see new transformer extension template

  • these changes will gradually be rolled out to all transformers through 0.9.X versions

New deprecations for 0.10.0#

Data types, checks, conversions#

  • check_is renamed to check_is_mtype, check_is to be deprecated in 0.10.0 (#1692) @mloning

Time series classification#

Transformations#

  • series transformers will no longer accept a Z argument - first argument Z replaced by X (#1365)

Added#

Documentation#

Data types, checks, conversions#

  • [ENH] added check_is_scitype for scitype checks, cleaning up dists_kernels input checks/conversions (#1704) @fkiraly

Forecasting#

  • [ENH] Auto-ETS checks models to select from based on non-negativity of data (#1615) @chernika158

  • [DOC] meta-tuning examples for docstring of ForecastingGridSearchCV (#1656) @aiwalter

Time series alignment#

  • [ENH] new module: time series alignment; alignment distances (#1264) @fkiraly

Time series classification#

Time series distances#

Governance#

Maintenance#

Fixed#

Estimator registry#

  • [BUG] Fixes to registry look-up, test suite for registry look-up (#1648) @fkiraly

Forecasting#

  • [BUG] Facebook prophet side effects on exogenous data X (#1711) @kejsitake

  • [BUG] fixing bug for _split, accidental removal of pandas.Index support (#1582) @fkiraly

  • [BUG] Fix convert and _split for Numpy 1D input (#1650) @fkiraly

  • [BUG] issue with update_y_X when we refit forecaster by (#1595) @ltsaprounis

Performance metrics, evaluation#

Time series alignment#

Time series classification#

Transformations#

Maintenance#

Contributors#

@aiwalter, @AngelPone, @AreloTanoh, @Carlosbogo, @chernika158, @chrisholder, @fstinner, @fkiraly, @freddyaboulton, @kejsitake, @lmmentel, @ltsaprounis, @MatthewMiddlehurst, @marcio55afr, @MrPr3ntice, @mloning, @OliverMatthews, @RNKuhns, @thayeylolu, @TonyBagnall,

Full changelog#

https://github.com/alan-turing-institute/sktime/compare/v0.8.1…v0.9.0

[0.8.1] - 2021-10-28#

Highlights#

New deprecations for 0.10.0#

Forecasting#

  • current prediction intervals interface in predict via return_pred_int will be deprecated and replaced by the new interface points predict_interval and predict_quantiles

Core interface changes#

Forecasting#

  • new interface points for probabilistic forecasting, predict_interval and predict_quantiles (#1421) @SveaMeyer13

  • changed forecasting univariate-only tag to ignores-exogeneous-X (#1358) @fkiraly

Added#

BaseEstimator/BaseObject#

Forecasting#

Time series classification#

Transformers#

Annotation: change-points, segmentation#

  • Clasp for time series segmentation (CIKM’21 publication) (#1352) @patrickzib

Documentation#

Governance#

Testing framework#

  • Tests refactor: using pytest_generate_tests instead of loops (#1407) @fkiraly

  • Tests refactor: Adding get_test_params method to extension template (#1395) @Aparna-Sakshi

  • Changed defaults in make_forecasting_problem (#1477) @aiwalter

Fixed#

All contributors: @Aparna-Sakshi, @BINAYKUMAR943, @IlyasMoutawwakil, @MatthewMiddlehurst, @Piyush1729, @RNKuhns, @RavenRudi, @SveaMeyer13, @TonyBagnall, @afzal442, @aiwalter, @bobbys-dev, @boukepostma, @danbartl, @eyalshafran, @fkiraly, @freddyaboulton, @kejsitake, @mloning, @myprogrammerpersonality, @patrickzib, @ronnie-llamado, @xiaobenbenecho, @SinghShreya05, and @yairbeer

[0.8.0] - 2021-09-17#

Highlights#

Core interface changes#

BaseEstimator/BaseObject#

  • estimator (class and object) capabilities are inspectable by get_tag and get_tags interface

  • list all tags applying to an estimator type by registry/all_tags

  • list all estimators of a specific type, with certain tags, by registry/all_estimators

In-memory data types#

  • introduction of m(achine)types and scitypes for defining in-memory format conventions across all modules, see in-memory data types tutorial

  • loose conversion methods now in _convert files in datatypes will no longer be publicly accessible in 0.10.0

Forecasting#

  • Forecasters can now be passed pd.DataFrame, pd.Series, np.ndarray as X or y, and return forecasts of the same type as passed for y

  • sktime now supports multivariate forecasters, with all core interface methods returning sensible return types in that case

  • whether forecaster can deal with multivariate series can be inspected via get_tag("scitype:y"), which can return "univariate", "multivariate", or "both"

  • further tags have been introduced, see registry/all_tags

Time series classification#

  • tags have been introduced, see registry/all_tags

Added#

Forecasting#

Time series classification#

Transformers#

Benchmarking and evaluation#

Documentation#

Testing framework#

  • unit test for absence of side effects in estimator methods (#1078) @fkiraly

Fixed#

All contributors: @Aparna-Sakshi, @AreloTanoh, @BINAYKUMAR943, @Flix6x, @GuzalBulatova, @IlyasMoutawwakil, @Lovkush-A, @MatthewMiddlehurst, @RNKuhns, @SveaMeyer13, @TonyBagnall, @afzal442, @aiwalter, @bilal-196, @corvusrabus, @fkiraly, @freddyaboulton, @juanitorduz, @justinshenk, @ltoniazzi, @mathco-wf, @mloning, @moradabaz, @pul95, @tensorflow-as-tf, @thayeylolu, @victordremov, @whackteachers and @xloem

[0.7.0] - 2021-07-12#

Added#

Changed#

Fixed#

All contributors: @Dbhasin1, @GuzalBulatova, @Lovkush-A, @MarcoGorelli, @MatthewMiddlehurst, @RNKuhns, @Riyabelle25, @SveaMeyer13, @TonyBagnall, @Yard1, @aiwalter, @chrisholder, @ckastner, @fkiraly, @jambo6, @julramos, @kachayev, @ltsaprounis, @mloning, @thayeylolu and @tombh

[0.6.1] - 2021-05-14#

Fixed#

Changed#

Added#

All contributors: @GuzalBulatova, @RNKuhns, @aaronreidsmith, @aiwalter, @kachayev, @ltsaprounis, @luiszugasti, @mloning, @satya-pattnaik and @yashlamba

[0.6.0] - 2021-04-15#

Fixed#

Changed#

Added#

All contributors: @AidenRushbrooke, @Ifeanyi30, @Lovkush-A, @MarcoGorelli, @MatthewMiddlehurst, @TonyBagnall, @afzal442, @aiwalter, @ayan-biswas0412, @dsherry, @jschemm, @kanand77, @koralturkk, @luiszugasti, @mloning, @pabworks and @xuyxu

[0.5.3] - 2021-02-06#

Fixed#

Changed#

Added#

All contributors: @Lovkush-A, @MatthewMiddlehurst, @RNKuhns, @TonyBagnall, @ViktorKaz, @aiwalter, @goastler, @koralturkk, @mloning, @pabworks, @patrickzib and @xuyxu

[0.5.2] - 2021-01-13#

Fixed#

All contributors: @Hephaest, @MatthewMiddlehurst, @TonyBagnall, @aiwalter and @dhirschfeld

[0.5.1] - 2020-12-29#

Added#

Fixed#

  • Pin pandas version to fix pandas-related AutoETS error on Linux (#581) @mloning

  • Fixed default argument in docstring in SlidingWindowSplitter (#556) @ngupta23

All contributors: @HYang1996, @TonyBagnall, @afzal442, @aiwalter, @angus924, @juanitorduz, @mloning and @ngupta23

[0.5.0] - 2020-12-19#

Added#

Changed#

Fixed#

Removed#

All contributors: @AaronX121, @Afzal-Ind, @AidenRushbrooke, @HYang1996, @MarcoGorelli, @MatthewMiddlehurst, @MichalChromcak, @TonyBagnall, @aiwalter, @bmurdata, @davidbp, @gracewgao, @magittan, @mloning, @ngupta23, @patrickzib, @raishubham1, @tch, @utsavcoding, @vnmabus, @vollmersj and @whackteachers

[0.4.3] - 2020-10-20#

Added#

Changed#

Fixed#

All contributors: @Emiliathewolf, @alwinw, @evanmiller29, @kkoziara, @krumeto, @mloning and @patrickzib

[0.4.2] - 2020-10-01#

Added#

Fixed#

Changed#

  • Move documentation to ReadTheDocs with support for versioned documentation (#395) @mloning

  • Refactored SFA implementation (additional features and speed improvements) (#389) @patrickzib

  • Move prediction interval API to base classes in forecasting framework (#387) @big-o

  • Documentation improvements (#364) @mloning

  • Update CI and maintenance tools (#394) @mloning

All contributors: @HYang1996, @SebasKoel, @fkiraly, @akanz1, @alwinw, @big-o, @brettkoonce, @mloning, @patrickzib

[0.4.1] - 2020-07-09#

Added#

Changed#

Fixed#

All contributors: @Ayushmaanseth, @Mo-Saif, @Pangoraw, @marielledado, @mloning, @sophijka, @Cheukting, @MatthewMiddlehurst, @Multivin12, @ABostrom, @HYang1996, @BandaSaiTejaReddy, @vedazeren, @hiqbal2, @btrtts

[0.4.0] - 2020-06-05#

Added#

  • Forecasting framework, including: forecasting algorithms (forecasters), tools for composite model building (meta-forecasters), tuning and model evaluation

  • Consistent unit testing of all estimators

  • Consistent input checks

  • Enforced PEP8 linting via flake8

  • Changelog

  • Support for Python 3.8

  • Support for manylinux wheels

Changed#

  • Revised all estimators to comply with common interface and to ensure scikit-learn compatibility

Removed#

  • A few redundant classes for the series-as-features setting in favour of scikit-learn’s implementations: Pipeline and GridSearchCV

  • HomogeneousColumnEnsembleClassifier in favour of more flexible ColumnEnsembleClassifier

Fixed#

  • Deprecation and future warnings from scikit-learn

  • User warnings from statsmodels