Skip to content

Commit

Permalink
Merge branch 'main' into pandas2-diag
Browse files Browse the repository at this point in the history
  • Loading branch information
fkiraly committed May 19, 2023
2 parents e3da427 + cc6085c commit 8cb8414
Show file tree
Hide file tree
Showing 72 changed files with 2,668 additions and 574 deletions.
11 changes: 10 additions & 1 deletion .all-contributorsrc
Original file line number Diff line number Diff line change
Expand Up @@ -2156,6 +2156,15 @@
"contributions": [
"doc"
]
}
},
{
"login": "marrov",
"name": "Marc Rovira",
"avatar_url": "https://avatars.githubusercontent.com/u/54272586?v=4",
"profile": "https://github.com/marrov",
"contributions": [
"doc"
]
}
]
}
20 changes: 20 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,26 @@ jobs:
run: build_tools/run_examples.sh
shell: bash

test-nodevdeps:
needs: code-quality
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Display Python version
run: python -c "import sys; print(sys.version)"

- name: Install sktime and dependencies
run: |
python -m pip install .
- name: Run pytest-free tests
run: |
python sktime/_nopytest_tests.py
test-nosoftdeps:
needs: code-quality
runs-on: ubuntu-20.04
Expand Down
27 changes: 14 additions & 13 deletions CONTRIBUTORS.md

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<a href="https://www.sktime.net"><img src="https://github.com/sktime/sktime/blob/main/docs/source/images/sktime-logo.jpg?raw=true)" width="175" align="right" /></a>
<a href="https://www.sktime.net"><img src="https://github.com/sktime/sktime/blob/main/docs/source/images/sktime-logo.svg" width="175" align="right" /></a>

# Welcome to sktime

> A unified interface for machine learning with time series
:rocket: **Version 0.17.2 out now!** [Check out the release notes here](https://www.sktime.net/en/latest/changelog.html).
:rocket: **Version 0.18.0 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
2 changes: 1 addition & 1 deletion docs/source/about/artwork.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ High-quality logos are available in the `docs/source/images/ <https://github.com

The logos were designed by `Miguel Garcia Cabrera <https://www.flickr.com/photos/miguelgarciacabrera/>`_.

.. image:: ../images/sktime-logo-no-text.jpg
.. image:: ../images/sktime-logo-no-text.png
:align: center
13 changes: 12 additions & 1 deletion docs/source/api_reference/classification.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,19 @@ Composition

ClassifierPipeline
ColumnEnsembleClassifier
ComposableTimeSeriesForestClassifier
SklearnClassifierPipeline

Ensembles
---------

.. currentmodule:: sktime.classification.ensemble

.. autosummary::
:toctree: auto_generated/
:template: class.rst

BaggingClassifier
ComposableTimeSeriesForestClassifier
WeightedEnsembleClassifier

Deep learning
Expand Down
10 changes: 10 additions & 0 deletions docs/source/api_reference/dists_kernels.rst
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,14 @@ Composition

CombinedDistance

.. currentmodule:: sktime.dists_kernels.indep

.. autosummary::
:toctree: auto_generated/
:template: class.rst

IndepDist

.. currentmodule:: sktime.dists_kernels.compose_tab_to_panel

.. autosummary::
Expand Down Expand Up @@ -109,6 +117,8 @@ Dynamic Time Warping Distances
Time warping distances can also be obtained by composing ``DistFromAligner`` with
a time warping aligner, see docstring of ``DistFromAligner``:

.. currentmodule:: sktime.dists_kernels.compose_from_align

.. autosummary::
:toctree: auto_generated/
:template: class.rst
Expand Down
1 change: 1 addition & 0 deletions docs/source/api_reference/forecasting.rst
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ Use ``make_reduction`` for easy specification.
RecursiveTimeSeriesRegressionForecaster
DirRecTabularRegressionForecaster
DirRecTimeSeriesRegressionForecaster
YfromX

Naive forecasters
-----------------
Expand Down
98 changes: 97 additions & 1 deletion docs/source/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,109 @@ All notable changes to this project will be documented in this file. We keep tra
For upcoming changes and next releases, see our `milestones <https://github.com/sktime/sktime/milestones?direction=asc&sort=due_date&state=open>`_.
For our long-term plan, see our :ref:`roadmap`.


Version 0.18.0 - 2023-04-28
---------------------------

Maintenance release - scheduled ``numba``, ``scikit-base``, ``pandas`` dependency updates,
scheduled deprecations.

For last non-maintenance content update, see 0.17.2.

Contents
~~~~~~~~

* ``numba`` has been changed to be a soft dependency. All ``numba`` based estimators
continue working unchanged, but require explicit ``numba`` installation.
* the base module of ``sktime`` has been factored out to ``scikit-base``,
the abstract base layer for ``scikit-learn`` like packages maintained by ``sktime``
* ``pandas 2`` support continues in testing/experimental period until 0.18.last.
All ``sktime`` native functionality is ``pandas 2`` compatible, the transition period
allows testing of deployments and custom extensions.
See instructions below for upgrading dependenet code to ``pandas 2``, or remaining on ``pandas 1``.
* scheduled deprecation of ``tensorflow`` based probability interface and ``VectorizedDF`` methods.

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

* ``numba`` is no longer a core dependency, it has changed to soft dependency
* ``scikit-base`` is a new core dependency

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

Dependencies
^^^^^^^^^^^^

* ``numba`` has changed from core dependency to soft dependency in ``sktime 0.18.0``.
To ensure functioning of setups of ``sktime`` code dependent on ``numba`` based estimators
going forward, ensure to install ``numba`` in the environment explicitly,
or install the ``all_extras`` soft dependency set which will continue to contain ``numba``.
Besides this, ``numba`` dependent estimators will function identically as before.
* ``sktime``'s base module has moved to a new core dependency, ``scikit-base``, from ``sktime 0.18.0``.
This will not impact functionality or imports directly from ``sktime``, or any usage.
* ``tensorflow-probability`` will cease to be a soft dependency from 0.19.0,
as the only dependency locus (forecasters' old ``predict_proba`` return type)
is being deprecated.

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

* ``VectorizedDF.get_iloc_indexer`` was removed.
Developers and users should use ``iter``, ``__iter__``, or ``get_iter_indices`` instead.

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

* forecasters' ``predict_proba`` now by default returns a ``BaseDistribution``.
The old ``tensorflow-probability`` based return from pre-0.17.0 can still be obtained
by setting the argument ``legacy_interface=False`` in ``predict_proba``.
This is useful for handling deprecation.
* from 0.19.0, the ``legacy_interface`` argument will be removed from ``predict_proba``,
together with the option to return ``tensorflow-probability`` based returns.

``pandas 2`` upgrade and testing
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* support for ``pandas 2`` is being introduced gradually:

* experimental support period until 0.19.0 (all 0.17.X and 0.18.X versions)
* full support from 0.19.0 (0.19.0, 0.19.X and onwards)

* in the experimental period (0.17.1-0.18.last):

* ``sktime`` will have a dependency bound of ``pandas<2.0.0``
* ``sktime`` will aim to be compatible with ``pandas 2.0.X`` as well as ``pandas 1, >=1.1.0``,
* ``sktime`` can be run and tested with ``pandas 2.0.X`` by force-installing ``pandas 2.0.X``
* estimators can be tested for ``pandas 2`` compatibility via ``check_estimator`` under force-installed ``pandas 2.0.X``
* reports on compatibility issues are appreciated in :issue:`4426` (direct input or link from)

* in the full support period (0.19.0-onwards):

* ``sktime`` requirements will allow ``pandas 2.0.X`` and extend support with ``pandas`` releases
* ``sktime`` will aim to be compatible with ``pandas 2`` (any version), as well as ``pandas 1, >=1.1.0``
* users choose their preferred ``pandas`` version by requirements on their downstream environment
* the bug and issue trackers should be used as normal

List of PR
~~~~~~~~~~

* [MNT] 0.18.0 change action - ``numba`` as soft dependency (:pr:`3843`) :user:`fkiraly`
* [MNT] 0.18.0 deprecation actions (:pr:`4510`) :user:`fkiraly`
* [MNT] ensure ``predict_proba`` calls in ``mlflow`` forecasting interface explicitly call ``legacy_interface`` (:pr:`4514`) :user:`fkiraly`
* [MNT] ``skbase`` refactor - part 1: ``BaseObject`` and package dependencies (:pr:`3151`) :user:`fkiraly`
* [MNT] ``skbase`` refactor - part 2: ``all_estimators`` lookup (:pr:`3777`) :user:`fkiraly`
* [ENH] ``quantile`` method for distributions, default implementation of forecaster ``predict_quantiles`` if ``predict_proba`` is present (:pr:`4513`) :user:`fkiraly`
* [ENH] add test for ``all_estimators`` tag filter (:pr:`4512`) :user:`fkiraly`


Version 0.17.2 - 2023-04-24
---------------------------

Highlights
~~~~~~~~~~

* the transformers and pipelines tutorial from pydata global 2022 is now available in ``sktime``, see `examples <https://mybinder.org/v2/gh/sktime/sktime/main?filepath=examples>`_(:pr:`4381`) :user:`dashapetr`
* the transformers and pipelines tutorial from pydata global 2022 is now available in ``sktime``, see `examples <https://mybinder.org/v2/gh/sktime/sktime/main?filepath=examples>`_ (:pr:`4381`) :user:`dashapetr`
* probabilistic prediction functionality for ``SARIMAX`` (:pr:`4439`) :user:`yarnabrina`
* ``InceptionTime`` classifier from ``sktime-dl`` migrated (:pr:`3003`) :user:`tobiasweede`
* ``SplitterBootstrapTransformer`` for booststrapping based on any splitter (:pr:`4455`) :user:`fkiraly`
Expand Down
2 changes: 1 addition & 1 deletion docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = None
language = "en"

# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
Expand Down
Binary file added docs/source/images/sktime-logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 8cb8414

Please sign in to comment.