Skip to content

Commit

Permalink
Release 0.25.1 (#5815)
Browse files Browse the repository at this point in the history
Release PR for 0.25.1

* version number bump
* changelog
  • Loading branch information
fkiraly committed Jan 25, 2024
1 parent d2d33d9 commit d12bf0b
Show file tree
Hide file tree
Showing 4 changed files with 324 additions and 3 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

> A unified interface for machine learning with time series
:rocket: **Version 0.25.0 out now!** [Check out the release notes here](https://www.sktime.net/en/latest/changelog.html).
:rocket: **Version 0.25.1 out now!** [Check out the release notes here](https://www.sktime.net/en/latest/changelog.html).

sktime is a library for time series analysis in Python. It provides a unified interface for multiple time series learning tasks. Currently, this includes time series classification, regression, clustering, annotation, and forecasting. It comes with [time series algorithms](https://www.sktime.net/en/stable/estimator_overview.html) and [scikit-learn] compatible tools to build, tune and validate time series models.

Expand Down
321 changes: 321 additions & 0 deletions docs/source/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,327 @@ For upcoming changes and next releases, see our `milestones <https://github.com/
For our long-term plan, see our :ref:`roadmap`.


Version 0.25.1 - 2023-01-24
---------------------------

Highlights
~~~~~~~~~~

* in ``make_reduction``, direct reduction forecaster now supports probabilistic tabular regressors from ``skpro`` (:pr:`5536`) :user:`fkiraly`
* new, efficient, parallelizable PAA and SAX transformer implementations, available as ``PAA2``, ``SAX2`` (:pr:`5742`) :user:`steenrotsman`
* ``FallbackForecaster``, fallback chain of multiple forecaster for exception handling (:pr:`5779`) :user:`ninedigits`
* time series classification: ``sktime`` native grid search, multiplexer for autoML (:pr:`4596`, :pr:`5678`) :user:`achieveordie`, :user:`fkiraly`
* ``IgnoreX`` - forecasting compositor to ignore exogenous data, for use in tuning (:pr:`5769`) :user:`hliebert`, :user:`fkiraly`
* classifier migrated from ``sktime-dl``: CNTC classifier (:pr:`3978`) :user:`aurumnpegasus`
* authors and maintainers of algorithms are now tracked via tags ``"authors"`` and ``"maintainers"``, see below

Dependency changes
~~~~~~~~~~~~~~~~~~

* ``arch`` (forecasting and parameter estimation soft dependency) bounds have been updated to ``>=5.6,<6.4.0`` (:pr:`5771`) :user:`dependabot[bot]`
* ``mne`` (transformations soft dependency) bounds have been updated to ``>=1.5,<1.7`` (:pr:`5585`) :user:`dependabot[bot]`
* ``dask`` (data container and parallelization back-end) bounds have been updated to ``<2024.1.1`` (:pr:`5748`) :user:`dependabot[bot]`

Core interface changes
~~~~~~~~~~~~~~~~~~~~~~

BaseObject and base framework
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* estimators and objects now record author and maintainer information in the new
tags ``"authors"`` and ``"maintainers"``. This is required only for estimators
in ``sktime`` proper and compatible third party packages. It is also used to generate
mini-package headers used in lookup functionality of the ``sktime`` webpage.
* author and maintainer information in the ``sktime`` package is no longer recorded in
``CODEOWNERS``, but in the new tags ``"authors"`` and ``"maintainers"``.
Authors and maintainer do not need to action this change, as it has been carried out
by the ``sktime`` maintainers. However, authors and maintainers are encouraged to
check the information in the tags, and to flag any accidental omissions or errors.

Benchmarking, Metrics, Splitters
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* forecasting point prediction metrics now also support parallelization via
``set_config``, for broadcasting on hierarchical or multivariate data

Forecasting
^^^^^^^^^^^

* forecasters can now be prevented from storing a reference to all seen data
as ``self._y`` and ``self._X`` by setting the config ``"remember_data"`` to
``False`` via ``set_config``. This is useful for serialization of forecasters.
Currently, the setting is only supported for a combination of data and forecasters
where instance or variable broadcasting is not triggered,
but the feature will be extended to all situations in the future.

Parameter estimation and hypothesis testing
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* Parameter plugin or estimation based parameter tuning estimators can now be quickly constructed
with the ``*`` dunder, which will construct a ``PluginParamsForecaster`` or ``PluginParamsTransformer``
with all fitted paramters (``get_fitted_params``) of the left element plugged in into the right element
(``set_params``), where parameter names match.
For instance, ``SeasonalityACF() * Deseasonalizer()`` will construct
a ``Deseasonalizer`` whose ``sp`` (seasonality period) parameter is tuned
by ``SeasonalityACF``, estimating ``sp`` via the ACF significance criterion on the series.
* The ``*`` dunder binds to the left, for instance
``Differencer() * SeasonalityACF() * Deseasonalizer()`` will construct
a ``Deseasonalizer`` whose ``sp`` (seasonality period) parameter is tuned
by ``SeasonalityACF``, estimating ``sp`` via the ACF significance criterion
on first differenced data (for stationarity).
Here first differencing is not applied to the ``Deseasonalizer``,
but only to the input of ``SeasonalityACF``, as the first ``*`` constructs
a parameter estimator, and the second ``*`` plugs in the parameter estimator into
the ``Deseasonalizer``.

Transformations
^^^^^^^^^^^^^^^

* transformations, i.e., ``BaseTransformer`` descendant instances,
can now also return ``None`` in ``_transform``, this is interpreted as empty data.

Deprecations and removals
~~~~~~~~~~~~~~~~~~~~~~~~~

Transformations
^^^^^^^^^^^^^^^

* ``panel.dictionary_based.PAA`` will be renamed to ``PAAlegacy`` in ``sktime`` 0.27.0,
while ``sktime.transformations.series.PAA2`` will be renamed to ``PAA``.
``PAA2`` will become the primary PAA implementation in ``sktime``,
while the current ``PAA`` will continue to be available as ``PAAlegacy``.
Both estimators are also available under their future name at their
current location, and will be available under their deprecated name
until 0.28.0.
To prepare for the name change, do one of the following:
1. replace use of ``PAA`` from ``sktime.transformations.panel.dictionary_based``
by use of ``PAA2`` from ``sktime.transformations.series.paa``, switching
parameter names appropriately, or
2. replace use of ``PAA`` from ``sktime.transformations.panel.dictionary_based``
by use of ``PAAlegacy`` from ``sktime.transformations.panel.dictionary_based``,
without change of parameter values.
* ``panel.dictionary_based.SAX`` will be renamed to ``SAXlegacy`` in ``sktime`` 0.27.0,
while ``sktime.transformations.series.SAX2`` will be renamed to ``SAX``.
``SAX2`` will become the primary SAX implementation in ``sktime``,
while the current ``SAX`` will continue to be available as ``SAXlegacy``.
Both estimators are also available under their future name at their
current location, and will be available under their deprecated name
until 0.28.0.
To prepare for the name change, do one of the following:
1. replace use of ``SAX`` from ``sktime.transformations.panel.dictionary_based``
by use of ``SAX2`` from ``sktime.transformations.series.paa``, switching
parameter names appropriately, or
2. replace use of ``SAX`` from ``sktime.transformations.panel.dictionary_based``
by use of ``SAXlegacy`` from ``sktime.transformations.panel.dictionary_based``,
without change of parameter values.

Enhancements
~~~~~~~~~~~~

BaseObject and base framework
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* [ENH] update ``deep_equals`` to accommodate plugins, e.g., for ``polars`` (:pr:`5504`) :user:`fkiraly`
* [ENH] Replace ``isinstance`` by ``object_type`` tag based checks (:pr:`5657`) :user:`benheid`
* [ENH] author and maintainer tags (:pr:`5754`) :user:`fkiraly`
* [ENH] enable ``all_tags`` to retrieve estimator and object tags (:pr:`5798`) :user:`fkiraly`
* [ENH] remove maintainer information from ``CODEOWNERS`` in favour of estimator tags (:pr:`5808`) :user:`fkiraly`
* [ENH] author and maintainer tags for alignment and distances modules (:pr:`5801`) :user:`fkiraly`
* [ENH] author and maintainer tags for forecasting module (:pr:`5802`) :user:`fkiraly`
* [ENH] author and maintainer tags for distributions and parameter fitting module (:pr:`5803`) :user:`fkiraly`
* [ENH] author and maintainer tags for classification, clustering and regression modules (:pr:`5807`) :user:`fkiraly`
* [ENH] author and maintainer tags for transformer module (:pr:`5800`) :user:`fkiraly`

Benchmarking, Metrics, Splitters
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* [ENH] Repeat splitter composition (:pr:`5737`) :user:`fkiraly`
* [ENH] parallelization support and config for forecasting performance metrics (:pr:`5813`) :user:`fkiraly`

Data types, checks, conversions
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* [ENH] in ``VectorizedDF``, partially decouple internal data store from methods (:pr:`5681`) :user:`fkiraly`

Forecasting
^^^^^^^^^^^

* [ENH] ``Imputer``: conditional parameter handling logic (:pr:`3916`) :user:`aiwalter`, :user:`fkiraly``
* [ENH] support for probabilistic regressors (``skpro``) in ``make_reduction``, direct reduction (:pr:`5536`) :user:`fkiraly`
* [ENH] private utility for ``BaseForecaster`` get columns, for all ``predict``-like functions (:pr:`5590`) :user:`fkiraly`
* [ENH] adding second test parameters for ``TBATS`` (:pr:`5689`) :user:`NguyenChienFelix33`
* [ENH] config to turn off data memory in forecasters (:pr:`5676`) :user:`fkiraly`, :user:`corradomio`
* [ENH] Simplify conditional statements in direct reducer (:pr:`5725`) :user:`fkiraly`
* [ENH] forecasting compositor to ignore exogenous data (:pr:`5769`) :user:`hliebert`, :user:`fkiraly`
* [ENH] add ``disp`` parameter to ``SARIMAX`` to control output verbosity (:pr:`5770`) :user:`tvdboom`
* [ENH] expose parameters supported by ``fit`` method of ``SARIMAX`` in ``statsmodels`` (:pr:`5787`) :user:`yarnabrina`
* [ENH] ``FallbackForecaster``, fallback upon fail with multiple forecaster chain (:pr:`5779`) :user:`ninedigits`

Parameter estimation and hypothesis testing
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* [ENH] Simplify ``BaseEstimator._get_fitted_params()`` and ``BaseParamFitter`` inheritance of that method (:pr:`5633`) :user:`tpvasconcelos`
* [ENH] parameter plugin for estimator into transformers, right concat dunder (:pr:`5764`) :user:`fkiraly`

Probability distributions and simulators
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* [ENH] bring distributions module on par with ``skpro`` distributions (:pr:`5708`) :user:`fkiraly`, :user:`alex-jg3`

Time series classification
^^^^^^^^^^^^^^^^^^^^^^^^^^

* [ENH] migrating CNTC network and classifier for classification from ``sktime-dl`` (:pr:`3978`) :user:`aurumnpegasus`, :user:`fkiraly`
* [ENH] grid search for time series classification (:pr:`4596`) :user:`achieveordie`, :user:`fkiraly`
* [ENH] reduce private coupling of ``IndividualBOSS`` classifier and ``BaseClassifier`` (:pr:`5654`) :user:`fkiraly`
* [ENH] multiplexer classifier (:pr:`5678`) :user:`fkiraly`
* [ENH] refactor structure of time series forest classifier related files (:pr:`5751`) :user:`fkiraly`

Transformations
^^^^^^^^^^^^^^^

* [ENH] better explanation about fit/transform instance linking in instance-wise transformers in error messages, and pointer to common solution (:pr:`5652`) :user:`fkiraly`
* [ENH] New ``PAA`` and ``SAX`` transformer implementations (:pr:`5742`) :user:`steenrotsman`
* [ENH] feature upgrade for ``SplitterSummarizer`` - granular control of inner ``fit``/``transform`` input (:pr:`5750`) :user:`fkiraly`
* [ENH] allow ``BaseTransformer._transform`` to return ``None`` (:pr:`5772`) :user:`fkiraly`, :user:`hliebert`

Test framework
^^^^^^^^^^^^^^

* [ENH] refactor tests with parallelization backend fixtures to programmatic backend fixture lookup (:pr:`5714`) :user:`fkiraly`
* [ENH] further refactor parallelization backend test fixtures to use central location (:pr:`5734`) :user:`fkiraly`


Fixes
~~~~~

BaseObject and base framework
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* [BUG] fix scitype inference utility for all cases (:pr:`5672`) :user:`fkiraly`
* [BUG] fixes for minor typos in error message related to custom ``joblib`` backend selection (:pr:`5724`) :user:`fkiraly`
* [BUG] handles ``AttributeError`` in ``show_versions`` when dependency lacks ``__version__`` (:pr:`5793`) :user:`yarnabrina`
* [BUG] fix type error in parallelization backend test fixture refactor (:pr:`5760`) :user:`fkiraly`

Benchmarking, Metrics, Splitters
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* [BUG] Fix dynamic ``make_forecasting_scorer`` for newer ``sklearn`` metrics (:pr:`5717`) :user:`fkiraly`
* [BUG] fix ``test_evaluate_error_score`` to skip test of expected warning raised if the ``joblib`` backend is ``"loky"`` or ``"multiprocessing"`` (:pr:`5780`) :user:`fkiraly`

Data loaders
^^^^^^^^^^^^

* [BUG] fix ``extract_path`` arg in ``sktime.datasets.load_UCR_UEA_dataset`` (:pr:`5744`) :user:`steenrotsman`

Data types, checks, conversions
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* [BUG] fix ``deep_equals`` for ``np.array`` with ``dtype="object"`` (:pr:`5697`) :user:`fkiraly`

Forecasting
^^^^^^^^^^^

* [BUG] fix ``ForecastingHorizon.get_expected_pred_idx`` ``sort_time`` (:pr:`5726`) :user:`fkiraly`
* [BUG] in ``BaggingForecaster``, fix ``random_state`` handling (:pr:`5730`) :user:`fkiraly`

Pipelines
^^^^^^^^^

* [BUG] Enable ``pipeline.fit`` without X (:pr:`5656`) :user:`benheid`

Time series classification
^^^^^^^^^^^^^^^^^^^^^^^^^^

* [BUG] fix ``predict`` output conversion failure in ``BaseClassifier``, ``BaseRegressor``, if ``y_inner_mtype`` tag is a list (:pr:`5680`) :user:`fkiraly`
* [BUG] fix ``test_multioutput`` for genuinely multioutput classifiers (:pr:`5700`) :user:`fkiraly`

Time series regression
^^^^^^^^^^^^^^^^^^^^^^

* [BUG] fix ``predict`` output conversion failure in ``BaseClassifier``, ``BaseRegressor``, if ``y_inner_mtype`` tag is a list (:pr:`5680`) :user:`fkiraly`

Transformations
^^^^^^^^^^^^^^^

* [BUG] skip sporadic test errors in ``ExponentialSmoothing`` (:pr:`5516`) :user:`achieveordie`
* [BUG] fix sporadic permutation of internal feature columns in ``TSFreshClassifier.predict`` (:pr:`5673`) :user:`fkiraly`
* [BUG] fix backend strings in transformer ``test_base`` (:pr:`5695`) :user:`fkiraly`
* [BUG] Ensure ``MultiRocketMultivariate`` uses ``random_state`` (:pr:`5710`) :user:`chrico-bu-uab`

Test framework
^^^^^^^^^^^^^^

* [BUG] Fixing dockerized tests (:pr:`5426`) :user:`kurayami07734`


Maintenance
~~~~~~~~~~~

* [MNT] [Dependabot](deps-dev): Update sphinx-issues requirement from ``<4.0.0`` to ``<5.0.0`` (:pr:`5792`) :user:`dependabot[bot]`
* [MNT] [Dependabot](deps): Bump tj-actions/changed-files from 41 to 42 (:pr:`5777`) :user:`dependabot[bot]`
* [MNT] [Dependabot](deps-dev): Update arch requirement from ``<6.3.0,>=5.6`` to ``>=5.6,<6.4.0`` (:pr:`5771`) :user:`dependabot[bot]`
* [MNT] [Dependabot](deps-dev): Update mne requirement from ``<1.6,>=1.5`` to ``>=1.5,<1.7`` (:pr:`5585`) :user:`dependabot[bot]`
* [MNT] [Dependabot](deps-dev): Update dask requirement from ``<2023.12.2`` to ``<2024.1.1`` (:pr:`5748`) :user:`dependabot[bot]`
* [MNT] improvements to modular CI framework - clearer naming, ``pyproject`` handling (:pr:`5713`) :user:`fkiraly`
* [MNT] temporary deactivation of new CI (:pr:`5795`) :user:`fkiraly`
* [MNT] fix faulty deprecation logic for ``n_jobs``, ``pre_dispatch`` in forecasting tuners, bump deprecation to 0.27.0 (:pr:`5784`) :user:`fkiraly`
* [MNT] update python version in binder dockerfile to 3.11 (:pr:`5762`) :user:`fkiraly`
* [MNT] address various deprecations from ``pandas`` (:pr:`5733`) :user:`fkiraly`, :user:`yarnabrina`
* [MNT] ``scikit-learn 1.4.0`` compatibility patches (:pr:`5782`, :pr:`5811`) :user:`fkiraly`
* [MNT] Code quality updates (:pr:`5786`) :user:`yarnabrina`
* [MNT] change cycle for making ``SAX2`` and ``PAA2`` primary implementation renamed to ``SAX``, ``PAA`` (:pr:`5799`) :user:`fkiraly`
* [MNT] remove maintainer information from ``CODEOWNERS`` in favour of estimator tags (:pr:`5808`) :user:`fkiraly`
* [MNT] addressing more ``pandas`` deprecations (:pr:`5816`) :user:`fkiraly`
* [MNT] address ``pd.DataFrame.groupby(axis=1)`` deprecation in ``EnsembleForecaster`` (:pr:`5707`) :user:`ninedigits`
* [MNT] add missing ``__author__`` field for ``MultiRocket`` and ``MultiRocketMultivariate`` (:pr:`5698`) :user:`fkiraly`
* [MNT] addressing ``DataFrame.groupby(axis=1)`` deprecation in metric classes (:pr:`5709`) :user:`fkiraly`
* [MNT] added upper bound ``pycatch22<0.4.5`` in ``transformations`` dependency set to avoid installation error on windows (:pr:`5670`) :user:`yarnabrina`
* [MNT] refactoring new CI to fix some bugs and other minor enhancements (:pr:`5638`) :user:`yarnabrina`
* [MNT] Update ``tslearn`` dependency version in pyproject.toml (:pr:`5686`) :user:`DManowitz`
* [MNT] fix several spelling mistakes (:pr:`5639`) :user:`yarnabrina`

Documentation
~~~~~~~~~~~~~

* [DOC] comment in ``CONTRIBUTORS.md`` that source file is ``all-contributorsrc`` (:pr:`5687`) :user:`fkiraly`
* [DOC] improved docstring for ``TrendForecaster`` and ``PolynomialTrendForecaster`` (:pr:`5747`) :user:`fkiraly`
* [DOC] updated algorithm inclusion guide (:pr:`5753`) :user:`fkiraly`
* [DOC] improved docstring for ``TimeSeriesForestClassifier`` (:pr:`5741`) :user:`fkiraly`
* [DOC] fix ``scitype`` string of transformers in API ref (:pr:`5759`) :user:`fkiraly`
* [DOC] improved formatting of tag section in extension templates (:pr:`5812`) :user:`fkiraly`
* [DOC] ``Imputer``: docstring clarity improvement, conditional parameter handling logic (:pr:`3916`) :user:`aiwalter`, :user:`fkiraly``
* [DOC] extension template for time series splitters (:pr:`5769`) :user:`fkiraly`
* [DOC] update soft dependency handling guide for tests with tag based dependency checking (:pr:`5756`) :user:`fkiraly`
* [DOC] fix all import failures in API docs and related missing exports (:pr:`5752`) :user:`fkiraly`
* [DOC] improve clarity in describing ``strategy="refit"`` in forecasting tuners' docstrings (:pr:`5711`) :user:`fkiraly`
* [DOC] correct type statement in forecasting tuner regarding ``forecaster`` (:pr:`5699`) :user:`fkiraly`
* [DOC] various minor API reference improvements (:pr:`5721`) :user:`fkiraly`
* [DOC] add ``ReducerTransform`` and ``DirectReductionForecaster`` to API reference (:pr:`5690`) :user:`fkiraly`
* [DOC] remove outdated ``sktime-dl`` reference in ``README.md`` (:pr:`5685`) :user:`fkiraly`

Contributors
~~~~~~~~~~~~

:user:`achieveordie`,
:user:`aiwalter`,
:user:`alex-jg3`,
:user:`aurumnpegasus`,
:user:`benheid`,
:user:`chrico-bu-uab`,
:user:`corradomio`,
:user:`DManowitz`,
:user:`fkiraly`,
:user:`hliebert`,
:user:`NguyenChienFelix33`,
:user:`ninedigits`,
:user:`kurayami07734`,
:user:`steenrotsman`,
:user:`tpvasconcelos`,
:user:`tvdboom`,
:user:`yarnabrina`


Version 0.25.0 - 2023-12-26
---------------------------

Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "sktime"
version = "0.25.0"
version = "0.25.1"
description = "A unified framework for machine learning with time series"
readme = "README.md"
keywords = [
Expand Down
2 changes: 1 addition & 1 deletion sktime/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"""sktime."""

__version__ = "0.25.0"
__version__ = "0.25.1"

__all__ = ["show_versions"]

Expand Down

0 comments on commit d12bf0b

Please sign in to comment.