Changelog#
The format is based on Keep a Changelog, and we adhere to Semantic Versioning.
The source code for all releases is available on GitHub.
For our long-term plan, see our Roadmap.
Version 0.33.2 - 2024-10-17#
Highlights#
new forecaster: interface to Chronos (zero-shot) foundation model forecaster (#7001) @Z-Fran, @geetu040, @benHeid, @rigvedmanoj
new classifiers: GRU-based time series classifiers (#6952) @fnhirwa
new transformer: temporal radial basis function features (#7261) @phoeenniixx
new
ExpandingSlidingWindowSplitter
, switching from expanding window to sliding window at cutoff point (#7193) @MarkusSagenpytorch-forecasting
andneuralforecast
models now provide probabilistic forecasts for global forecasting (#6628, #6666) @XinyuWuuPolynomialTrendForecaster
now can make probabilistic forecasts (#6424) @ericjbTimesFMForecaster
now allows to select the source package, and zero-shot usage has been memory optimized (#7204, #7212) @Prtm2110, @fkiraly
Dependency changes#
skpro
(forecasting soft dependency) bounds have been updated to>=2,<2.8.0
u8darts
(forecasting soft dependency) bounds have been updated to>=0.29.0,<0.32.0
dask
(data container and parallelization back-end soft dependency) bounds have been updated to<2024.10.1
Core interface changes#
Performance metrics for probabilistic forecasting, for interval and quantile returns,
can now optionally be constructed with an alpha
(quantile forecasts) or coverage
parameter.
These are for use with benchmarking or tuning interfaces, where a metric is provided,
but predict_interval
or predict_quantiles
are not explicitly called.
In such a case, the parameter of the metric will be used by the tuner or benchmark utility to
tune with the metric at that quantile alpha
or interval coverage
.
Enhancements#
BaseObject and base framework#
Benchmarking, Metrics, Splitters#
[ENH]
ExpandingSlidingWindowSplitter
, switching from expanding window to sliding window at cutoff point (#7193) @MarkusSagen[ENH] added
coverage
parameter to all metrics ofpred_interval
type (#7278) @talat-khattatov
Data types, checks, conversions#
[ENH] refactor
datatypes
module toscikit-base
classes and data records (#7161) @fkiraly[ENH] Fix polars
PerformanceWarning
when object is of typepolars.LazyFrame
(#7221) @shivanshsinghal-22
Forecasting#
[ENH] Added method
predict_interval
toPolynomialTrendForecaster
(#6424) @ericjb[ENH] Quantile Forecast for
pytorch-forecasting
Models with Global Forecast API (#6628) @XinyuWuu[ENH] Global Forecast API for
NeuralForecast
interface (#6666) @XinyuWuu[ENH] testing global forecasters: reduces number of obs in
_make_hierarchical
for test data generation to ensure shorter runtimes (#6948) @julian-fong[ENH] interface to Chronos (zero-shot) foundation model forecaster (#7001) @Z-Fran, @geetu040, @benHeid, @rigvedmanoj
[ENH] Added
get_test_params
inThetaLinesTransformer
(#7199) @Anuragwagh[ENH] cached
timesfm
instance in case of repeated use (#7204) @fkiraly[ENH] refactor probabilistic prediction default dispatching logic to mixin class (#7230) @fkiraly
[ENH]
TimesFMForecaster
dependencies now depends onuse_source_package
(#7212) @Prtm2110[ENH] python 3.13 compatibility -
SquaringResiduals
(#7244) @fkiraly
Registry and search#
Time series classification#
Transformations#
[ENH]
HOG1D
Transformer add new test parameter set toget_test_params
(#7183) @Humorloos[ENH] Added second parameters example to ``get_test_params ``of Filter (#7178) @KarlKolibri
[ENH] temporal radial basis function feature transformer (#7261) @phoeenniixx
Test framework#
[ENH]
get_test_params
cases in composites conditional on soft dependencies to use_check_estimator_deps
(#7225) @shivanshsinghal-22
Documentation#
[DOC] Added reference of
load-tecator
(#7171) @vedantag17[DOC] Add example to
HOG1DTransformer
(#7180) @Humorloos[DOC] add docstring example for
PaddingTransformer
(#7179) @jan-mue[DOC] Added docstring example for
HurstExponentTransformer
(#7185) @Dehelaan[DOC] add docstring example to
Filter
transformer (#7175) @fkiraly[DOC] Added MOIRAIforecaster to the API docs, create new section on pretrained FM (#7223) @Dehelaan
[DOC] improved docstrings for k-nearest neighbours classifier and regressor (#7241) @fkiraly
[DOC]
SlidingWindowSplitter
- proper mathematical description (#7195) @fkiraly[DOC] anomaly and changepoint detection notebook from ODSC 2024 (#7284) @alex-jg3, @fkiraly
[DOC] Fixes Time Series Segmentation with sktime and ClaSP notebook example (#7283) @RobotPsychologist
[DOC] Fixed minor grammatical errors in README.md (#7262) @Smoothengineer
[DOC] added missing import statements in ReverseAugmenter docstring example (#7265) @sanskarmodi8
[DOC] clarify how
fh
in forecasting methods is interpreted (#7227) @ericjb
Maintenance#
[MNT] Removes coverage upload steps from CI (#7012) @Prtm2110
[MNT] [Dependabot](deps): Update
skpro
requirement from<2.6.0,>=2
to>=2,<2.8.0
(#7245) @dependabot[bot][MNT] [Dependabot](deps): Update
sphinx-gallery
requirement from<0.18.0
to<0.19.0
(#7264) @dependabot[bot][MNT] [Dependabot](deps): Update
u8darts
requirement from<0.31,>=0.29.0
to>=0.29.0,<0.32
(#7272) @dependabot[bot][MNT] [Dependabot](deps): Update
dask
requirement from<2024.8.1
to<2024.10.1
(#7292) @dependabot[bot]
Fixes#
Benchmarking, Metrics, Splitters#
[BUG] Fix
ExpandingCutoffSplitter
whenstep_length > 1
(#7290) @ninedigits
Data sets and data loaders#
Data types, checks, conversions#
[BUG] fixed
dask.dataframe
import error indask_to_pd
module (#7260) @sanskarmodi8
Forecasting#
[BUG] fix
ForecastingHorizon.to_absolute
with multiple frequencies (#7172) @tianjiqx[BUG] in
ReconcilerForecaster
, fixreturn_totals
parameter for all strategies (#7208) @SaiRevanth25[BUG] Fix
DartsLinearRegression
failing instead of giving a warning (#7235) @fnhirwa[BUG] Fix
Prophet
not tagged ashandles-missing-data
(#7267) @Garve[BUG] fix singular matrices in
test_reconcilerforecaster_return_totals
(#7293) @fkiraly
Contributors#
@alex-jg3, @Anuragwagh, @benHeid, @Dehelaan, @ericjb, @fkiraly, @fnhirwa, @Garve, @geetu040, @Humorloos, @jan-mue, @julian-fong, @KarlKolibri, @MarkusSagen, @ninedigits, @phoeenniixx, @Prtm2110, @RobotPsychologist, @rigvedmanoj, @SaiRevanth25, @sanskarmodi8, @shivanshsinghal-22, @Smoothengineer, @talat-khattatov, @tianjiqx, @vedantag17, @XinyuWuu, @Z-Fran
Version 0.33.1 - 2024-09-26#
Small feature release for showcase at pydata Paris.
Highlights#
interface for MOIRAI foundation model (#6746) @pranavvp16, @benHeid
GroupbyCategoryForecaster
for applying panel forecasting by category or segment (#7066) @felipeangelimvieiraIn
ReconcilerForecaster
, users can now choose to return a dataframe without__total
(#7127) @SaiRevanth25time series segmentation via clustering (#6782) @ankit-1204
logger transformer for logging pipeline inputs and outputs (#7074) @fkiraly
Dependency changes#
optuna
(hyperparameter optimization soft dependency) bounds have been updated to<4.1
mne
(transformations soft dependency) bounds have been updated to>=1.5,<1.9
Enhancements#
BaseObject and base framework#
Data types, checks, conversions#
[ENH] Hierarchical scitype support for
polars
(#6697) @pranavvp16[ENH] refactor
datatypes
example fixtures toBaseObject
classes (#7133) @fkiraly
Forecasting#
[ENH] Add interface for MOIRAI foundation model (#6746) @pranavvp16, @benHeid
[ENH]
ThetaForecaster
- add one more parameter set (#7055) @fkiraly[ENH]
GroupbyCategoryForecaster
for applying panel forecasting by category or segment (#7066) @felipeangelimvieira[ENH] Adding a parameter to
ReconcilerForecaster
to return a dataframe without the dunder levels (#7127) @SaiRevanth25[ENH] add
_predict_var
intest_pred_int_tag
(#7154) @fkiraly
Registry and search#
Time series anomalies, changepoints, segmentation#
[ENH] time series segmentation via clustering (#6782) @ankit-1204
Transformations#
Documentation#
[DOC] correct incorrect bounds mentioned in 0.33.0 changelog (#7114) @fkiraly
[DOC] Added a docstring example to TimeSeriesKernelKMeans (#7124) @Saptarshi-Bandopadhyay
[DOC] update core developers on team page, formatting (#7140) @fkiraly
[DOC] remove 2024 elections registration news item (#7158) @fkiraly
[DOC] remove references to
nested_univ
from extension templates (#7058) @fkiraly
Maintenance#
[MNT] Updating pre-commit hooks and corresponding changes (#7109) @yarnabrina
[MNT] [Dependabot](deps): Update
optuna
requirement from<3.7
to<4.1
(#7104) @dependabot[bot][MNT] [Dependabot](deps): Update
mne
requirement from<1.8,>=1.5
to>=1.5,<1.9
(#7129) @dependabot[bot][MNT] temporarily skip
temporian
related failure oftest_complex_function
until #7040 is resolved (#7147) @fkiraly[MNT] bound
SignatureTransformer
tonumpy<2
(#7163) @fkiraly[MNT] remove ptf install from example notebooks (#7165) @XinyuWuu
[MNT] remove python version bound from
pytorch-forecasting
based estimators (#7102) @fkiraly
Fixes#
Forecasting#
Transformations#
Test framework
Contributors#
@ankit-1204, @benHeid, @ericjb, @fkiraly, @pranavvp16, @SaiRevanth25, @Saptarshi-Bandopadhyay, @XinyuWuu, @yarnabrina
Version 0.33.0 - 2024-09-09#
Maintenance release, with scheduled deprecations and change actions.
For last non-maintenance content updates, see 0.32.4 and 0.32.2.
Dependency changes#
scikit-base
(core dependency) bounds have been updated to>=0.6.1,<0.10.0
holidays
(transformations soft dependency) bounds have been updated to>=0.29,<0.57
pykan
(deep learning soft dependency) bounds have been updated to>=0.2,<0.2.7
mne
(transformations soft dependency) bounds have been updated to>=1.5,<1.9
dask
(data container and parallelization back-end soft dependency) bounds have been updated to<2024.8.3
pytorch-forecasting
(forecasting soft dependency) bounds have been updated to>=1.0.0,<1.2.0
Deprecations and removals#
in
DirectReductionForecaster
the default forwindows_identical
has changed toFalse
.
Maintenance#
[MNT] 0.33.0 deprecations and change actions (#7091) @fkiraly
[MNT] ffp3 datasets URLs changed on CRAN; updated
_fpp3_loaders.py
accordingly (#7084) @ericjb[MNT] remove <3.11 restriction for
pytorch-forecasting
, add upper bound (#7092) @fkiraly[MNT] [Dependabot](deps): Update
dask
requirement from<2024.8.2
to<2024.8.3
(#7062) @dependabot[bot][MNT] [Dependabot](deps): Update
numpy
requirement from<2.1,>=1.21
to>=1.21,<2.2
(#7007) @dependabot[bot][MNT] [Dependabot](deps): Update
scikit-base
requirement from<0.9.0,>=0.6.1
to>=0.6.1,<0.10.0
(#7035) @dependabot[bot][MNT] [Dependabot](deps): Update
holidays
requirement from<0.56,>=0.29
to>=0.29,<0.57
(#7096) @dependabot[bot][MNT] [Dependabot](deps): Update
pykan
requirement from<0.2.2,>=0.2
to>=0.2,<0.2.7
(#7010) @dependabot[bot][MNT] [Dependabot](deps): Update
mne
requirement from<1.8,>=1.5
to>=1.5,<1.9
(#7004) @dependabot[bot]
Documentation#
[DOC] Adds @SaiRevanth25` contributions to all-contributors file (#7085) @SaiRevanth25
[DOC] fix typo and formatting in installation docs (#7060) @Saptarshi-Bandopadhyay
Enhancements#
Contributors#
@benHeid, @ericjb, @fkiraly, @SaiRevanth25, @Saptarshi-Bandopadhyay
Version 0.32.4 - 2024-09-06#
Small feature and fix release for:
colab compatibility, hotfix for
polars
dependency incompatibilitycompatibility with
skchange
2nd party integrationimprovements to the anomalies, changepoints, segmentation framework
documentation update related to upcoming
sktime
elections
Core interface changes#
A scitype adaptation framework is introduced, allowing use of an estimator of one type in a slot for another, via type coercion. The coercion framework covers
sklearn
,skpro
, andsktime
estimators currently, and is extensible. A user and developer shorthand for such coercion is provided as theregistry.coerce_scitype
function, which dispatches to individual coercion mechanisms.Time series clusterers that produce a cluster assignment can be coerced to transformations, enabling their use in any pipeline slot for transformations.
Anomaly and changepoint detectors can now be pipelined with transformations, resulting in a detector. Dunder concatenation
transformer * detector
will default to this.Anomaly and changepoint detectors can be coerced to transformations, enabling their use in any pipeline slot for transformations.
Enhancements#
BaseObject and base framework#
Time series anomalies, changepoints, segmentation#
[ENH] Add padded f1 score for evaluating change point detection algorithms (#7034) @Alex-JG3
[ENH] improvements to
BaseSeriesAnnotator
base class for anomaly, changepoint, segments (#7073) @fkiraly[ENH] pipeline for anomaly, changepoint detectors and segmenters (#7071) @fkiraly
[ENH] coercion to use time series anomaly, changepoint detectors as transformers (#7072) @fkiraly
Time series clustering#
Transformations#
[ENH] Hurst exponent feature extraction transformer (#7065) @phoeenniixx
Documentation#
[DOC] Add SVG version of the sktime logo with no text (#7024) @wirrywoo
[DOC] Improve documentation for
TinyTimeMixer
(#7009) @geetu040[DOC] fix broken links in continous integration docs (#7059) @Saptarshi-Bandopadhyay
[DOC] split list of transformation pipeline components into subcategories (#7075) @fkiraly
Fixes#
Contributors#
@Alex-JG3, @fkiraly, @fnhirwa, @geetu040, @ninedigits, @phoeenniixx, @Saptarshi-Bandopadhyay, @wirrywoo
Version 0.32.3 - 2024-08-27#
Hotfix release with bugfix for html representation of forecasting pipelines.
For last non-maintenance content updates, see 0.32.2.
Contents#
[BUG] fix html display for
TransformedTargetForecaster
andForecastingPipeline
Version 0.32.2 - 2024-08-26#
Highlights#
HierarchicalProphet
forecaster fromprophetverse
(#7028) @felipeangelimvieiraRegularized VAR reduction forecaster,
VARReduce
(#6725) @meraldoantonioFramework support for categorical data has been extended to transformers and pipelines (#6924) @Abhay-Lejith
Clusterer tags for capability to assign cluster centers (#7018) @fkiraly
Dependency changes#
holiday
(transformations soft dependency) bounds have been updated to>=0.29,<0.56
dask
(data container and parallelization back-end) bounds have been updated to<2024.8.2
Core interface changes#
New tags for clusterers have been added to characterize capabilities to assign cluster centers. The following boolean tags have been added:
capability:predict
, whether the clusterer can assign cluster labels viapredict
capability:predict_proba
, for probabilistic cluster assignmentcapability:out_of_sample
, for out-of-sample cluster assignment. If False, the clusterer can only assign clusters to data points seen during fitting.
Enhancements#
BaseObject and base framework#
Data sets and data loaders#
[ENH] Hierarchical sales toydata generator from workshops (#6953) @marrov
[ENH] Convert the date column to a period with daily frequency in
load_m5
(#6990) @SaiRevanth25
Data types, checks, conversions#
[ENH] Polars
Series
scitype supports (#6485) @pranavvp16[ENH] Polars
Panel
scitype support (#6552) @pranavvp16[ENH] Addition of
feature_kind
metadata attribute togluonts
datatypes (#6871) @shlok191
Forecasting#
[ENH] New regularized VAR reduction forecaster,
VARReduce
(#6725) @meraldoantonio[ENH] Add
HierarchicalProphet
estimator toprophetverse
module (#7028) @felipeangelimvieira
Time series clustering#
Transformations#
[ENH] Extending categorical support in X to transformers and pipelines (#6924) @Abhay-Lejith
Documentation#
[DOC] minor improvements to docstring of
Bollinger
(bands) (#6978) @fkiraly[DOC] Update
.all-contributorsrc
with council roles (#6962) @fkiraly[DOC] update soft dependency handling guide for estimators (#7000) @fkiraly
[DOC] improvements to docstrings for panel tasks - time series classification, regression, clustering (#6991) @fkiraly
[DOC] fixes to
TransformedTargetForecaster
docstring (#7002) @fkiraly[DOC] update intro notebook with material from ISF and EuroSciPy 2024 (#7013) @fkiraly
[DOC] Fix docstring for
ExpandingCutoffSplitter
(#7033) @ninedigits[DOC] fix incorrect import in
EnbPIForecaster
docstring (#7015) @fkiraly
Maintenance#
[MNT] Refactor
show_versions
to usedependencies
module (#6883) @fkiraly[MNT] sync changelog with hotfix branch
anirban-sktime-0.31.2
(#6963) @yarnabrina[MNT] add
numpy 2
incompatibility flag topmdarima
dependency (#6974) @fkiraly[MNT] decorate
test_auto_arima
withnumpy 2
skip until final fix/diagnosis (#6973) @fkiraly[MNT] remove
tsbootstrap
dependency from public dependency sets (#6966) @fkiraly[MNT] rename base class
TimeSeriesLloyds
toBaseTimeSeriesLloyds
(#6992) @fkiraly[MNT] remove module level
numba
import warnings (#6999) @fkiraly[MNT]
esig
based estimators: addnumpy<2
bound (#7036) @fkiraly[MNT] [Dependabot](deps): Bump
tj-actions/changed-files
from 44 to 45 (#7019) @dependabot[bot][MNT] [Dependabot](deps): Update
holidays
requirement from<0.55,>=0.29
to>=0.29,<0.56
(#7006) @dependabot[bot][MNT] [Dependabot](deps): Update
dask
requirement from<2024.8.1
to<2024.8.2
(#7005) @dependabot[bot]
Fixes#
BaseObject and base framework#
[BUG] fix
test_softdep_error
dependency handling check if environment marker tag is not satisfied (#6961) @fkiraly[BUG] fix dependency checkers in case of multiple distributions available in environment, e.g., on databricks (#6986) @fkiraly, @toandaominh1997
Benchmarking and Metrics#
[BUG] Fix
ForecastingBenchmark
giving an error when the dataloader returns the tuple (y, X) (#6971) @SaiRevanth25
Data sets and data loaders#
Data types, checks, conversions#
[BUG] Fix
nested_univ
converter inconsistent handling of index level names (#7026) @pranavvp16
Forecasting#
[BUG]
TinyTimeMixerForecaster
: fix truncating index and updatetest_params
(#6965) @geetu040[BUG] Do not add season condition names as extra regressors in Prophet (#6988) @wpdonders
[BUG] Fix
Prophet
``_get_fitted_params ``error when the timeseries is constant (#7011) @felipeangelimvieira
Contributors#
@Abhay-Lejith, @felipeangelimvieira, @fkiraly, @geetu040, @marrov, @meraldoantonio, @ninedigits, @pranavvp16, @SaiRevanth25, @shlok191, @toandaominh1997, @wirrywoo, @wpdonders, @yarnabrina
Version 0.32.1 - 2024-08-12#
Hotfix release for using make_reduction
with not fully sklearn
compliant
tabular regressors such as from catboost
.
For last non-maintenance content updates, see 0.31.1.
Contents#
[BUG] fix
make_reduction
type inference for non-sklearn estimators
Version 0.32.0 - 2024-08-11#
Maintenance release, with scheduled deprecations and change actions.
For last non-maintenance content updates, see 0.31.1.
Dependency changes#
skpro
(soft dependency) bounds have been updated to>=2,<2.6.0
skforecast
(forecasting soft dependency) bounds have been updated to<0.14.0
.
Core interface changes#
all
sktime
estimators and objects are now required to have at least two test parameter sets inget_test_params
to be compliant withcheck_estimator
contract tests. This requirement was previously stated in the extension template but not enforced. It is now also included in the automated tests viacheck_estimator
. Estimators without (unreserved) parameters, i.e., where two distinct parameter sets are not possible, are excepted from this.
Deprecations and removals#
From
sktime 0.38.0
, forecasters’predict_proba
will requireskpro
to be present in the python environment, for distribution objects to represent distributional forecasts. Untilsktime 0.35.0
,predict_proba
will continue working withoutskpro
, defaulting to return objects insktime.proba
ifskpro
is not present. Fromsktime 0.35.0
, an error will be raised upon call of forecasterpredict_proba
ifskpro
is not present in the environment. Users of forecasters’predict_proba
should ensure thatskpro
is installed in the environment.The probability distributions module
sktime.proba
deprecated and will be fully replaced byskpro
insktime 0.38.0
. Untilsktime 0.38.0
, imports fromsktime.proba
will continue working, defaulting tosktime.proba
ifskpro
is not present, otherwise redirecting imports toskpro
objects. Fromsktime 0.35.0
, an error will be raised ifskpro
is not present in the environment, otherwise imports are redirected toskpro
. Direct or indirect users ofsktime.proba
should ensureskpro
is installed in the environment. Direct users of thesktime.proba
module should, in addition, replace any imports fromsktime.proba
with imports fromskpro.distributions
.
Contents#
[MNT] 0.32.0 deprecations and change actions (#6916) @fkiraly
[MNT] [Dependabot](deps): Update
skpro
requirement from<2.5.0,>=2
to>=2,<2.6.0
(#6897) @dependabot[bot][MNT] remove
numpy 2
incompatibility flag fromnumba
based estimators (#6915) @fkiraly[MNT] deprecation of
proba
module in favour ofskpro
soft dependency (#6940) @fkiraly[MNT] update versions of
pre-commit
hooks (#6947) @yarnabrina[MNT] 0.32.0 release action - revert temporary skip
get_test_params
number check for 0.21.1 and 0.22.0 release (#5114) @fkiraly[MNT] Bump
skforecast
to0.13
version allowing support for python3.12
(#6946) @yarnabrina[BUG] Fix
Xt_msg
type intranformations.base
(#6944) @hliebert
Contributors#
Version 0.31.2 - 2024-08-13#
Hotfix release, released after hotfix release 0.32.1, to apply the same hotfix to 0.31.X versions as well.
Hotfix for using make_reduction
with not fully sklearn
compliant
tabular regressors such as from catboost
.
For last non-maintenance content updates, see 0.31.1.
Contents#
[BUG] fix
make_reduction
type inference for non-sklearn estimators
Notes#
This is a hotfix for 0.31.1 release, fixing a regression. This release is not contained in the 0.32.0 or 0.32.1 releases.
Version 0.31.1 - 2024-08-10#
Highlights#
html representation of objects now has a button linking to documentation page (#6876) @mateuszkasprowicz
interface to TinyTimeMixer foundation model (#6712) @geetu040
interface to
darts
reduction models (#6712) @fnhirwa, @yarnabrinaLTSFTransformer
based oncure-lab
research code base (#6202) @geetu040forecasters can now support categorical
X
, as per tag (#6704, #6732) @Abhay-LejithDirectReductionForecaster
now has awindows_identical
option (#6650) @hliebertForecastingOptunaSearchCV
can now be passed custom samplers and “higher is better” scores (#6823, #6846) @bastisar, @gareth-brown-86, @mk406
Dependency changes#
holiday
(transformations soft dependency) bounds have been updated to>=0.29,<0.54
dask
(data container and parallelization back-end) bounds have been updated to<2024.8.1
Core interface changes#
BaseObject and base framework#
implementers no longer need to set the
package_import_alias
tag when estimator dependencies have a different import name than the PEP 440 package name. All internal logic now only uses the PEP 440 package name. There is no need to remove the tag if already set, but it is no longer required.estimators now have a tag
capability:categorical_in_X: bool
to indicate that the estimator can handle categorical features in the input dataX
. Such estimator can be used with categorical and string-valued features ifX
is passed in one of thepandas
based mtypes.the html representation of all objects now includes a link to the documentation of the object, and is now in line with the
sklearn
html representation.
Enhancements#
BaseObject and base framework#
[ENH] improved environment package version check (#6776) @fkiraly
[ENH] Remove package import alias related internal logic and tags (#6821) @fkiraly
[ENH] Adding tag for categorical support in
X
(#6704) @Abhay-Lejith[ENH] Adding categorical support: Raising error in yes/no case (#6732) @Abhay-Lejith
[ENH] Link to docs in object’s html repr (#6876) @mateuszkasprowicz
Data sets and data loaders#
[ENH] Data Loader for M5 dataset (#6731) @SaiRevanth25
Data types, checks, conversions#
[ENH]
check_pdmultiindex_panel
to return names of invalidobject
columns if there are any (#6797) @SaiRevanth25[ENH] Allow object dtype in series (#5886) @yarnabrina
[ENH] converter framework tests in
datatypes
to cover all types, including those requiring soft dependencies (#6838) @fkiraly[ENH] add missing
feature_kind
metadata fields togluonts
based data container checkers (#6861) @fkiraly[ENH] added
feature_kind
metadata in datatype checks (#6490) @Abhay-Lejith[ENH] Adding support for
gluonts
PandasDataset
object (#6668) @shlok191[ENH] Added support for
gluonts
PandasDataset
as aSeries
scitype (#6837) @shlok191
Forecasting#
[ENH]
darts
Reduction Models adapter (#6712) @fnhirwa, @yarnabrina[ENH] Extension Template For Global Forecasting API (#6699) @XinyuWuu
[ENH] enable multivariate data passed to
autots
interface (#6805) @fkiraly[ENH] Add Sampler to
ForecastingOptunaSearchCV
(#6823) @bastisar[ENH] Add scoring direction to
ForecastingOptunaSearchCV
(#6846) @gareth-brown-86, @mk406[ENH] de-novo implementation of
LTSFTransformer
based oncure-lab
research code base (#6202) @geetu040[ENH] Add
windows_identical
toDirectReductionForecaster
(#6650) @hliebert[ENH] updates type inference in
make_reduction
to use central scitype inference and allow proba tabular regressors (#6893) @fkiraly[ENH] DeepAR and NHiTS and refinements for
pytorch-forecasting
interface (#6551) @XinyuWuu[ENH] Interface to TinyTimeMixer foundation model (#6712) @geetu040
[ENH] remove now superfluous try-excepts in forecasting API test suite (#6906) @fkiraly
Registry and search#
Time series anomalies, changepoints, segmentation#
Time series classification#
Transformations#
[ENH] add second test params dict to
Aggregator
(#6759) @fr1ll[ENH]
pandas
inner type and global pooling forTabularToSeriesAdaptor
(#6752) @fkiraly[ENH] alternative returns for
VmdTransformer
- mode spectra and central frequencies (#6857) @fkiraly[ENH] simplify dictionaries and alias handling in
Catch22
(#6104) @fkiraly[ENH] making
self._is_vectorized
access more defensive inBaseTransformer
(#6863) @fkiraly
Test framework#
Vendor and onboard libraries#
[ENH] Vendor fracdiff library (#6777) @DinoBektesevic
[ENH] improvements to vendored
fracdiff
library (#6912) @fkiraly
Documentation#
[DOC] Notebook and Template For Global Forecasting API (#6699) @XinyuWuu
[DOC] Add authorship credits to
MatrixProfileTransformer
for Stumpy authors (#6762) @alexander-lakocy[DOC] add examples to
StatsForecastGARCH
andStatsForecastARCH
docstrings (#6761) @melinny[DOC] Add alignment notebook example (#6768) @alexander-lakocy
[DOC] fix transformers type table in API reference in accordance with sphinx guidelines (#6771) @alexander-lakocy
[DOC] Modify editable install to make cross-platform (#6758) @fr1ll
[DOC]
TruncationTransformer
docstring example (#6765) @ceroper[DOC] De-duplicate User Guide and Examples (closes #6767) (#6770) @alexander-lakocy
[DOC] improved docstring of
DWTTransformer
(#6764) @Mitchjkjkjk[DOC] various improvements to user journey on documentation page (#6760) @fkiraly
[DOC] Time series k means max iter parameter docstring (#6726) @AlexeyOm
[DOC] cross-reference estimator search from tags API reference (#6816) @fkiraly, @yarnabrina
[DOC] updated docstring for
check_is_mtype
to match skprocheck_is_mtype
function (#6835) @julian-fong[DOC] example & tutorial notebooks: normalize execution counts, indentation, execute all cells (#6847) @fkiraly
[DOC] clarify column handling in docstring of
FourierFeatures
(#6834) @fkiraly[DOC] added fork usage recommendations (#6827) @yarnabrina
[DOC] change links in documentation to refer to same version (#6841) @yarnabrina
[DOC] minor improvements to
check_scoring
docstring (#6877) @fkiraly[DOC] add proper author credits to 1:1 interface classes - aligners, distances, forecasters, parameter estimators (#6850) @fkiraly
[DOC] Add documentation for benchmarking module (#6792) @benHeid
[DOC] Add example notebook for the graphical pipeline (#5175) @benHeid
[DOC] git workflow guide - chained branches, fixing header fonts (#6913) @fkiraly
Maintenance#
[MNT] Update
Callable
import fromtyping
tocollections.abc
(#6798) @yarnabrina[MNT] Fix spellings using
codespell
andtypos
(#6799) @yarnabrina[MNT] improved environment package version check (#6776) @fkiraly
[MNT] add non-unicode characters check to the linter (#6807) @fnhirwa
[MNT] updates and fixes to type hints (#6743) @ZhipengXue97
[MNT] Resolve the issue with diacritics failing to be decoded on Windows (#6862) @fnhirwa
[MNT] sync docstring and code formatting of dependency checker module with
skbase
(#6873) @fkiraly[MNT] Remove package import alias related internal logic and tags (#6821) @fkiraly
[MNT] release workflow: Upgrade deprecated pypa action parameter (#6878) @szepeviktor
[MNT] Fix
pykan
import and dependency checks (#6881) @fkiraly[MNT] temporarily pin
matplotlib
below3.9.1
(#6890) @yarnabrina[MNT] make
pyproject.toml
parsing for differential testing more robust against non-package relevant changes (#6882) @fkiraly[MNT] formatter for jupyter notebook json in build tools (#6849) @fkiraly
[MNT] sync differential testing utilities with
skpro
(#6840) @fkiraly[MNT] sync docstring and code formatting of dependency checker module with
skbase
(#6873) @fkiraly[MNT] Resolve the issue with diacritics failing to be decoded on Windows (#6862) @fnhirwa
[MNT] changelog utility: fix termination condition to retrieve merged PR (#6920) @fkiraly
[MNT] Updating the GHA dependencies to install OSX dependencies and setting the compiler flags (#6926) @fnhirwa
[MNT] revert an erroneous instance of
pandas
deprecation fix (#6925) @fkiraly[MNT] Update the path to script to fix #6926 (#6933) @fnhirwa
[MNT] [Dependabot](deps): Update
pytest
requirement from<8.3,>=7.4
to>=7.4,<8.4
(#6819) @dependabot[bot][MNT] [Dependabot](deps): Update
dask
requirement from<2024.6.3
to<2024.7.2
(#6818) @dependabot[bot][MNT] [Dependabot](deps): Update
sphinx-gallery
requirement from<0.17.0
to<0.18.0
(#6820) @dependabot[bot][MNT] [Dependabot](deps): Update
holidays
requirement from<0.53,>=0.52
to>=0.52,<0.54
(#6780) @dependabot[bot][MNT] [Dependabot](deps): Update sphinx requirement from
!=7.2.0,<8.0.0
to!=7.2.0,<9.0.0
(#6865) @dependabot[bot][MNT] [Dependabot](deps): Update
holidays
requirement from<0.54,>=0.52
to>=0.52,<0.55
(#6898) @dependabot[bot][MNT] [Dependabot](deps): Update
dask
requirement from<2024.7.2
to<2024.8.1
(#6907) @dependabot[bot]
Fixes#
BaseObject and base framework#
Data types, checks, conversions#
Forecasting#
Registry and search#
Time series anomalies, changepoints, segmentation#
Transformations#
[BUG] Refactor
ADICVTransformer
and fix CV calculation (#6757) @sbhobbes[BUG] fix
BaseTransformer
broadcasting condition ininverse_transform
for decomposers (#6824) @fkiraly[BUG] fix
MSTL
inverse transform and use in forecasting pipeline (#6825) @fkiraly[BUG] fix handling of
numpy
integers in refactoredCatch22
transformation (#6934) @fkiraly
Visualization#
[BUG] In
plot_series
, trim unused levels when verifying dataframe formatting (#6754) @SultanOrazbayev
Contributors#
@Abhay-Lejith, @Alex-JG3, @alexander-lakocy, @AlexeyOm, @bastisar, @benHeid, @ceroper, @DinoBektesevic, @fkiraly, @fnhirwa, @fr1ll, @gareth-brown-86, @geetu040, @hliebert, @julian-fong, @mateuszkasprowicz, @MBristle, @melinny, @Mitchjkjkjk, @mk406, @SaiRevanth25, @sbhobbes, @shlok191, @SultanOrazbayev, @szepeviktor, @XinyuWuu, @yarnabrina, @ZhipengXue97
Version 0.31.0 - 2024-07-11#
Maintenance release:
scheduled deprecations and change actions
numpy 2
compatibilitycode style and pre-commit updates, using
ruff
for linting
For last non-maintenance content updates, see 0.30.2.
Dependency changes#
numpy
(core dependency) bounds have been updated to<2.1,>=1.21
skpro
(soft dependency) bounds have been updated to>=2,<2.5.0
Deprecations and removals#
Time series anomalies, changepoints, segmentation#
The
fmt
argument in time series annotators is now deprecated. Users should use thepredict
andtransform
methods instead,predict
instead offmt="sparse"
, andtransform
instead offmt="dense"
.
Time series classification#
The
convert_y_to_keras
method in deep learning classifiers has been removed. Users who have been using this method should instead useOneHotEncoder
fromsklearn
directly, asconvert_y_to_keras
is a simple wrapper aroundOneHotEncoder
with default settings.
Contents#
[MNT] raise
numpy
bound tonumpy < 2.1
,numpy 2
compatibility (#6624) @fkiraly[MNT] [Dependabot](deps): Update skpro requirement from
<2.4.0,>=2
to>=2,<2.5.0
(#6663) @dependabot[bot][MNT] bound
prophet
based forecasters tonumpy<2
due to incompatibility ofprophet
(#6721) @fkiraly[MNT] further
numpy 2
compatibility fixes in estimators (#6729) @fkiraly[MNT] handle
numpy 2
incompatible soft deps (#6728) @fkiraly[MNT] Upgrade code style beyond
python 3.8
(#6330) @yarnabrina[MNT] Update pre commit hooks post dropping
python 3.8
support (#6331) @yarnabrina[MNT] suppress aggressive
freq
related warnings frompandas 2.2
(#6733) @fkiraly[MNT] 0.31.0 deprecations and change actions (#6716) @fkiraly
[ENH] refactor and bugfixes for environment checker utilities (#6719) @fkiraly
Contributors#
Version 0.30.2 - 2024-07-04#
Highlights#
new estimator overview table and estimator search page (#6147) @duydl
HFTransformersForecaster
(hugging face transformers connector) now has a user friendly interface for applying PEFT methods (#6457) @geetu040ForecastingOptunaSearchCV
for hyper-parameter tuning of forecasters viaoptuna
(#6630) @mk406, @gareth-brown-86prophetverse
package forecasters are now indexed bysktime
(#6614) @felipeangelimvieirapytorch-forecasting
adapter, experimental global forecasting API (#6228) @XinyuWuuskforecast
adapter for reduction strategies (#6531) @Abhay-Lejith, @yarnabrinaEnbPI based forecaster with components from
aws-fortuna
(#6449) @benHeidDTW distances and aligners from
dtaidistance
(#6578) @fkiralyparametrize_with_checks
utility for granular API compliance test setup in 2nd/3rd party libraries (#6588) @fkiraly
Dependency changes#
holidays
(transformations soft dependency) bounds have been updated to>=0.29,<0.53
dask
(data container and parallelization back-end) bounds have been updated to<2024.5.3
optuna
is now a soft dependency, via theForecastingOptunaSearchCV
estimator, in theall_extras
soft dependency set, with bounds<3.7
pytorch-forecasting
is now a soft dependency, in thedl
(deep learning) soft dependency setskforecast
is now a soft dependency, in theall_extras
soft dependency set and theforecasting
soft dependency set, with bounds<0.13,>=0.12.1
dtaidistance
is now a soft dependency, in theall_extras
soft dependency set and thealignment
soft dependency set, with bounds<2.4
Core interface changes#
Forecasting#
The base forecaster interface now has a dedicated interface point for
global forecasting or fine-tuning: in forecasters supporting global forecast,
an y
argument may be passed in predict
, indicating new time series instances
for a global forecast, or a context for foundation models.
Forecasters capable of global forecasting or fine-tuning (this is the same interface
point) are tagged with the tag capability:global_forecasting
, value True
.
The global forecasting and fine-tuning interfaces are currently experimental, and may undergo changes.
Users are invited to give feedback, and test the feature with the new
pytorch-forecasting
adapter.
Test framework#
2nd and 3rd party extension packages can now use the
parametrize_with_checks
utility to set up granular API compliance tests. For detailed usage notes, consult the extender guide: Implementing Estimators.various quality-of-life improvements have been made to facilitate indexing an estimator in the estimator overview and estimator search for developers of API compatible 2nd and 3rd party packages, without adding it directly to the main
sktime
repository. For detailed usage notes, consult the extender guide: Implementing Estimators, or inspect theProphetverse
forecaster as a worked example.
Enhancements#
BaseObject and base framework#
[ENH] prevent imports caused by
_check_soft_dependencies
, speed up dependency check and test collection time (#6355) @fkiraly, @yarnabrina
Benchmarking, Metrics, Splitters#
Data types, checks, conversions#
Distances, kernels#
Forecasting#
[ENH]
pytorch-forecasting
adapter with Global Forecasting API (#6228) @XinyuWuu[ENH] fitted parameter forwarding utility, forward
statsforecast
estimators’ fitted parameters (#6349) @fkiraly[ENH] EnbPI based forecaster with components from
aws-fortuna
(#6449) @benHeid[ENH]
skforecast
ForecasterAutoreg adapter (#6531) @Abhay-Lejith, @yarnabrina[ENH] Extend
HFTransformersForecaster
for PEFT methods (#6457) @geetu040[ENH] in
BaseForecaster
, move check forcapability:insample
to_check_fh
boilerplate (#6593) @XinyuWuu[ENH]
ForecastingOptunaSearchCV
for hyper-parameter tuning of forecasters viaoptuna
(#6630) @mk406, @gareth-brown-86
Registry and search#
Time series alignment#
Time series classification#
[ENH] resolve duplication in KNeighborsClassifier and KNeighborsRegressor (#6504) @Z-Fran
[ENH] added two test params sets to
FCNNetwork
(#6562) @TheoWeih[ENH] further refactor of knn classifier and regressor (#6615) @fkiraly
[ENH] update
tests._config
to skip various sporadically failing tests for Proximity Forest and Proximity Tree until fixed (#6638) @julian-fong
Time series regression#
Transformations#
Test framework#
[ENH] differential testing for base functionality in various modules (#6534) @fkiraly
[ENH] further differential testing for the
transformations
module (#6533) @fkiraly[ENH] differential testing in
dist_kernels
andclustering
modules (#6543) @fkiraly[ENH] simplify and add differential testing to
forecasting.compose.tests
module (#6563) @fkiraly[ENH] simplify and add differential testing to
sktime.pipeline
module (#6565) @fkiraly[ENH] differential testing in
benchmarking
module (#6566) @fkiraly[ENH] move doctests to main test suite to ensure conditional execution (#6536) @fkiraly
[ENH] minor improvements to test efficiency (#6586) @fkiraly
[ENH]
parametrize_with_checks
utility for granular API compliance test setup in 2nd/3rd party libraries (#6588) @fkiraly[ENH] differential testing and minor improvements to
forecasting.base
tests (#6619) @fkiraly[ENH] differential testing for
performance_metrics
module (#6616) @fkiraly[ENH] fixes and improvements to
pytest
doctest
integration (#6621) @fkiraly
Documentation#
[DOC] fix minor typos in tags API reference (#6631) @fkiraly
[DOC] update dependencies reference (#6655) @emmanuel-ferdman
[DOC] fix minor typo in developer comment in
BaseTransformer
(#6689) @Spinachboul[DOC] rst roadmap documentation page stale since 2021 - replace by correct links to recent roadmaps (#6556) @fkiraly
[DOC] clarify docs on ARIMA estimators, add author credits for upstream (#6705) @fkiraly
[DOC] credit @doberbauer` for
pykalman
python 3.11 compatibility fix (#6662) @doberbauer
Maintenance#
[MNT] [Dependabot](deps): Update holidays requirement from
<0.51,>=0.29
to>=0.29,<0.52
(#6634) @dependabot[bot][MNT] [Dependabot](deps): Update holidays requirement from
<0.52,>=0.29
to>=0.52,<0.53
(#6702) @dependabot[bot][MNT] [Dependabot](deps): Update dask requirement from
<2024.6.1
to<2024.6.2
(#6643) @dependabot[bot][MNT] [Dependabot](deps): Update numba requirement from
<0.60,>=0.53
to>=0.53,<0.61
(#6590) @dependabot[bot][MNT] [Dependabot](deps): Update dask requirement from
<2024.6.2
to<2024.6.3
(#6647) @dependabot[bot][MNT] remove coverage reporting and
pytest-cov
from PR CI andsetup.cfg
(#6363) @fkiraly[MNT]
numpy 2
compatibility fixes - estimators (#6626) @fkiraly[MNT]
scipy
1.14.0
compatibility fordeep_equals
plugin forcsr_matrix
(#6664) @fkiraly[MNT] deprecate unused
_check_soft_dependencies
argumentsuppress_import_stdout
(#6691) @fkiraly
Fixes#
Benchmarking, Metrics, Splitters#
Data loaders#
Data types, checks, conversions#
Forecasting#
Time series classification#
Time series clustering#
Time series regression#
Test framework#
Transformations#
[BUG] fix
HolidayFeatures
crashes if dataframe doesn’t contain specified date (#6550) @fnhirwa[BUG] in
Differencer
, make explicit clone to avoidSettingWithCopyWarning
(#6567) @benHeid[BUG] minirocket: fix zero division errors #5174 (#6612) @benshaw2
[BUG] ensure correct setting of
requires_X
andrequires_y
tag forFeatureUnion
(#6695) @fkiraly[BUG] ensure correct setting of
requires_X
andrequires_y
tag forTransformerPipeline
(#6692) @fkiraly[BUG] partial fix for dropped column names in
PaddingTransformer
(#6693) @fkiraly
Contributors#
@Abhay-Lejith, @benHeid, @benshaw2, @doberbauer, @emmanuel-ferdman, @ericjb, @felipeangelimvieira, @fkiraly, @fnhirwa, @gareth-brown-86, @geetu040, @iaryangoyal, @julian-fong, @ksharma6, @mk406, @shlok191, @Spinachboul, @TheoWeih, @XinyuWuu, @yarnabrina, @Z-Fran
Version 0.30.1 - 2024-06-04#
Minimal maintenance update with actions consolidating onboard packages.
For last major feature update, see 0.29.1.
Contents#
Version 0.30.0 - 2024-06-03#
Major upgrade to the time series anomaly, changepoints, segmentation API (@Alex-JG3). Users should review the section in the release notes.
Kindly also note the python 3.8 End-of-life warning below.
Also includes scheduled deprecations and change actions.
For last major feature update, see 0.29.1.
Dependency changes#
joblib
is now an explicit core dependency, with bounds<1.5,>=1.2.0
. Previously,joblib
was an indirect core dependency, viascikit-learn
. Due to direct imports, this was changed to an explicit dependency.scikit-learn
(core dependency) bounds have been updated to>=0.24,<1.6.0
scikit-base
(core dependency) bounds have been updated to>=0.6.1,<0.9.0
skpro
(soft dependency) bounds have been updated to>=2,<2.4.0
kotsu
is not longer a soft dependency required by the forecasting benchmarking framework. Thekotsu
package is no longer maintained, and its necessary imports have beend moved tosktime
as private utilities until refactor. See #6514.pykalman
(transformations soft dependency) has been forked intosktime
, assktime.libs.pykalman
, as the original package is no longer maintained, seesktime
issue 5414 orpykalman
issue 109.The package fork will be maintained in
sktime
.Direct users of
pykalman
can replace importsfrom pykalman import x
with equivalent importsfrom sktime.libs.pykalman import x
.Indirect users via the transformer
KalmanFilterTransformerPK
will not be impacted as APIs do not change, except that they no longer require the originalpykalman
package in their python environment.
Core interface changes#
The time series annotation, anomalies, changepoints, segmentation API has been
fully reworked to be in line with scikit-base
patterns, sktime
tags,
and to provide a more consistent and flexible interface.
the API provides
predict
methods for annotation labels, e.g., segments, outlier points, and atransform
method for indicator series, for instance 1/0 indicator whether an anomaly is present at the time stamp.the
fmt
argument used in some estimators is now deprecated, in favour of usingpredict
ortransform
.The type of annotation, e.g., change points or segmentation, is encoded by the new tag
task
used in time series annotators, with valuesanomaly_detection
,segmentation
,changepoint_detection
.Low-level methods allow polymorphic use of annotators, e.g., a changepoint detector to be used for segmentation, via
predict_points
orpredict_segments
. Thepredict
method defaults to the type of annotation defined bytask
.
A full tutorial with examples will be created over the next release cycles, and further enhancements are planned.
Deprecations and removals#
Python 3.8 End-of-life#
sktime
now requires Python version >=3.9
.
No errors will be raised on Python 3.8, but test coverage and support for
Python 3.8 has been dropped.
Kindly note for context: python 3.8 will reach end of life
in October 2024, and multiple sktime
core dependencies,
including scikit-learn
, have already dropped support for 3.8.
Forecasting#
cINNForecaster
has been renamed to CINNForecaster
.
The estimator is no longer available under its old name,
after the deprecation period.
Users should replace any imports of cINNForecaster
with imports of CINNForecaster
.
Enhancements#
Documentation#
Maintenance#
[MNT] [Dependabot](deps): Update skpro requirement from
<2.3.0,>=2
to>=2,<2.4.0
(#6443) @dependabot[bot][MNT] [Dependabot](deps): Update scikit-learn requirement from
<1.5.0,>=0.24
to>=0.24,<1.6.0
(#6462) @dependabot[bot][MNT] [Dependabot](deps): Update scikit-base requirement from
<0.8.0,>=0.6.1
to>=0.6.1,<0.9.0
(#6488) @dependabot[bot][MNT] drop test coverage on python 3.8 in CI (#6329) @yarnabrina
[MNT] final change cycle (0.30.0) for renaming
cINNForecaster
toCINNForecaster
(#6367) @geetu040[MNT] added
joblib
as core dependency (#6384) @yarnabrina[MNT] 0.30.0 deprecations and change actions (#6468) @fkiraly
[MNT] modified CRLF line endings to LF line endings (#6512) @yarnabrina
[MNT] Move dependency checkers to separate module in
utils
(#6354) @fkiraly[MNT] resolution to
pykalman
issue -sktime
local pykalman fork (#6188) @fkiraly[MNT] add systematic differential test switch to low-level tests (#6511) @fkiraly
[MNT] isolate
utils
module init andsktime
init from external imports (#6516) @fkiraly[MNT] preparing refactor of benchmark framework: folding minimal
kotsu
library intosktime
(#6514) @fkiraly[MNT] run tests in
distances
module only if it has changed (#6517) @fkiraly[MNT] refactor
pykalman
tests topytest
and conditional execution (#6519) @fkiraly[MNT] conditional execution of tests in
datatypes
module (#6520) @fkiraly
Contributors#
@Alex-JG3, @dependabot[bot], @fkiraly, @geetu040, @yarnabrina
Version 0.29.1 - 2024-05-30#
Highlights#
TransformSelectForecaster
to apply different forecasters depending on series type (e.g., intermittent, lumpy) (#6453) @shlok191New probabilistic forecast metrics: interval width (sharpness), area under the calibration curve (#6437, #6460) @fkiraly
Data loader for fpp3 (Forecasting, Princniples and Practice) datasets via
rdata
package, insktime
data formats (#6477) @ericjbADI/CV2 (Syntetos/Boylan) feature extractor (#6336) @shlok191
ExpandingCutoffSplitter
- splitter by moving cutoff (#6360) @ninedigits
Dependency changes#
holidays
(transformations soft dependency) bounds have been updated to>=0.29,<0.50
pycatch22
(transformations soft dependency) bounds have been updated to<0.4.6
dtw-python
(distances and alignment soft dependency) bounds have been updated to>=1.3,<1.6
dask
(data container and parallelization back-end) bounds have been updated to<2024.5.2
transformers
(forecasting soft dependency) bounds have been updated to<4.41.0
Core interface changes#
Benchmarking, Metrics, Splitters#
all metrics for point forecasts now support weighting, via the
sample_weight
parameter. If passed, the metric will be weighted by the sample weights. For hierarchical data, the weights are applied to the series level, in this case all series need to have same length. Probabilistic metrics do not support weighting yet, this will be added in a future release.
Time series alignment#
all time series aligners now possess the
capability:unequal_length
tag, which isTrue
if the aligner can handle time series of unequal length, andFalse
otherwise. An informative error message, based on the tag, is now raised if an aligner not supporting unequal length time series is used on such data.
Deprecations and removals#
Time series classification#
The
convert_y_to_keras
method in deep learning classifiers has been deprecated and will be removed in 0.31.0. Users who have been using this method should instead useOneHotEncoder
fromsklearn
directly, asconvert_y_to_keras
is a simple wrapper aroundOneHotEncoder
with default settings.
Enhancements#
BaseObject and base framework#
Benchmarking, Metrics, Splitters#
Data loaders#
Data types, checks, conversions#
[ENH] Polars conversion utilities (#6455) @pranavvp16
Forecasting#
[ENH] Kolmogorov-Arnold Network (KAN) forecaster (#6386) @benHeid
[ENH] Compositor to apply forecasters depending on series type (e.g., intermittent) (#6453) @shlok191
[ENH] compatibility of
ForecastingHorizon
withpandas
freq
2Y
onpandas 2.2.0
and above (#6500) @fkiraly[ENH] add test case for
ForecastingHorizon
pandas 2.2.X
compatibility, failure case #6499 (#6503) @fkiraly[ENH] remove
Prophet
fromtest_differencer_cutoff
(#6492) @fkiraly[ENH] address deprecation and raise error in
test_differencer_cutoff
(#6493) @fkiraly
Time series alignment#
Time series classification#
Transformations#
Test framework#
Visualization#
Documentation#
[DOC] remove redundant/duplicative classification tutorial notebooks (#6401) @fkiraly
[DOC] explanation of
get_test_params
in test framework example (#6434) @fkiraly[DOC] improved formatting of transformation docstrings (#6489) @fkiraly
[DOC] fixed wrong sentence in the documentation (#6375) @helloplayer1
[DOC] Correct docstring for conversion functions of
dask_to_pd
(#6439) @pranavvp16[DOC] Fix hugging face transformers documentation (#6450`) @benheid
[DOC]
plot_calibration
docstring - formal explanation of the plot (#6414) @fkiraly[DOC] high-level explanation of deprecation policy principles (#6464) @fkiraly
Maintenance#
[MNT] [Dependabot](deps): Update holidays requirement from
<0.49,>=0.29
to>=0.29,<0.50
(#6456) @dependabot[bot][MNT] [Dependabot](deps): Update pycatch22 requirement from
<0.4.4
to <0.4.6`` (#6442) @dependabot[bot][MNT] [Dependabot](deps): Update sphinx-design requirement from
<0.6.0
to<0.7.0
(#6471) @dependabot[bot][MNT] [Dependabot](deps): Update dask requirement from
<2024.5.1
to<2024.5.2
(#6444) @dependabot[bot][MNT] [Dependabot](deps): Update dtw-python requirement from
<1.5,>=1.3
to>=1.3,<1.6
(#6474) @dependabot[bot][MNT] include unit tests in
sktime/tests
in per module tests (#6353) @yarnabrina[MNT] maintenance changes for
AutoTBATS
(#6400) @yarnabrina[MNT] address various deprecation and computation warnings (#6482) @fkiraly
[MNT] address further deprecation warnings from
pandas
(#6494) @fkiraly[MNT] fix the docs local build failure due to corrupt notebook (#6426) @fnhirwa
Fixes#
Forecasting#
[BUG] fix
ForecastX
whenforecaster_X_exogeneous="complement"
(#6433) @fnhirwa[BUG] Modified VAR code to allow
predict_quantiles
of 0.5 (fixes #4742) (#6441) @meraldoantonio
Neural networks#
[BUG] Remove duplicated
BaseDeepNetworkPyTorch
innetworks.base
(#6398) @luca-miniati
Time series classification#
[BUG] Resolve
LSTMFCNClassifier
changingcallback
parameter (#6239) @ArthrowAbstract[BUG] fix
_get_train_probs
in some classifiers to accept any input data type (#6377) @fkiraly[BUG] fix
BaggingClassifier
for column subsampling case (#6429) @fkiraly[BUG] fix
ProximityForest
, tree, stump, andIndividualBOSS
returningy
of different type inpredict
(#6432) @fkiraly[BUG] fix classifier default
_predict
returning integer labels always, even iffit
y
was not integer (#6430) @fkiraly[BUG] in
CNNClassifier
, ensurefilter_sizes
andpadding
is passed on (#6452) @fkiraly[BUG] fix
BaseClassifier.fit_predict
andfit_predict_proba
forpd-multiindex
mtype (#6491) @fkiraly
Time series regression#
[BUG] Resolve
LSTMFCNRegressor
changingcallback
parameter (#6239) @ArthrowAbstract[BUG] in
CNNRegressor
, ensurefilter_sizes
andpadding
is passed on (#6452) @fkiraly
Transformations#
[BUG] fix to make
LabelEncoder
compatible withsktime
pipelines (#6458) @Abhay-Lejith
Test framework#
[BUG] allow metric classes to be called with
multilevel
arg if series is not hierarchical (#6418) @fkiraly[BUG] fix
test_run_test_for_class
logic check ifONLY_CHANGED_MODULES
flag isFalse
and all estimator dependencies are present (#6383) @fkiraly[BUG] fix
test_run_test_for_class
test logic (#6448) @fkiraly
Visualization#
Contributors#
@Abhay-Lejith, @ArthrowAbstract, @benHeid, @cedricdonie, @ericjb, @fkiraly, @fnhirwa, @helloplayer1, @ishanpai, @luca-miniati, @meraldoantonio, @ninedigits, @pranavvp16, @sharma-kshitij-ks, @shlok191, @yarnabrina, @YelenaYY
Version 0.29.0 - 2024-04-28#
Kindly note the python 3.8 End-of-life warning below.
Maintenance release:
scheduled deprecations and change actions
optimization of test collection speed
For last non-maintenance content updates, see 0.28.1.
Dependency changes#
sktime
now requiresscikit-base>=0.6.1
(core dependency), this has changed from previously no lower bound.
Deprecations and removals#
Python 3.8 End-of-life#
From sktime
0.30.0, sktime will require Python version >=3.9.
No errors will be raised, but test coverage and support for
Python 3.8 will be dropped from 0.30.0 onwards.
Kindly note for context: python 3.8 will reach end of life
in October 2024, and multiple sktime
core dependencies,
including scikit-learn
, have already dropped support for 3.8.
Forecasting#
cINNForecaster
has been renamed to CINNForecaster
.
The estimator is available under its past name at its
current location until 0.30.0, when the old name will be removed.
To prepare for the name change,
replace any imports of cINNForecaster
with imports of CINNForecaster
.
Transformations#
The
n_jobs
parameter in theCatch22
transformer has been removed. Users should pass parallelization backend parameters viaset_config
instead. To specifyn_jobs
, use any of the backends supporting it in thebackend:parallel
configuration, such as"loky"
or"multithreading"
. Then_jobs
parameter should be passed via thebackend:parallel:params
configuration. To retain previous behaviour, with a specific setting ofn_jobs=x
, useset_config(**{"backend:parallel": "loky", "backend:parallel:params": {"n_jobs": x}})
.
Contents#
[MNT] change cycle (0.29.0) for renaming
cINNForecaster
toCINNForecaster
(#6238) @geetu040[MNT]
python 3.8
End-of-life andsktime
support drop warning (#6348) @fkiraly[MNT] speed up test collection - cache differential testing switch utilities (#6357) @fkiraly, @yarnabrina
[MNT] temporary skip of estimators involved in timeouts #6344 (#6361) @fkiraly
[MNT] 0.29.0 deprecations and change actions (#6350) @fkiraly
Contributors#
Version 0.28.1 - 2024-04-25#
Highlights#
Experimental Hugging Face interface for pre-trained forecasters and foundation models (#5796) @benHeid
estimator tags are now systematically documented in the API reference (#6289) @fkiraly
new classifiers, transformers from
pyts
interfaced: BOSSVS, learning shapelets, shapelet transform (#6296) @johannfaouzi (author), @fkiraly (interface)new classifiers from
tslearn
interfaced: time series SVC, SVR, learning shapelets (#6273) @rtavenar (author), @fkiraly (interface)ForecastX
can now use use future-unknown exogenous variables if passed inpredict
(#6199) @yarnabrinabagging/bootstrap forecaster can now be applied to multivariate, exogeneous, hierarchical data and produces fully probabilistic forecasts (#6052) @fkiraly
neuralforecast
models now have settings to auto-detect date-timefreq
, and passoptimizer
(#6235, #6237) @pranavvp16, @geetu040
Dependency changes#
dask
(data container and parallelization back-end) bounds have been updated to<2024.4.2
arch
(transformation and parameter estimation soft dependency) bounds have been updated to>=5.6,<7.1.0
holidays
(transformations soft dependency) bounds have been updated to>=0.29,<0.48
mne
(transformations soft dependency) bounds have been updated to>=1.5,<1.8
Core interface changes#
All objects and estimators now can, in addition to the existing PEP 440 package dependency specifier tags,
specify PEP 508 compatible environment markers for their dependencies,
via the env_marker
tag. Values should be PEP 508 compliant strings, e.g., platform_system!="Windows"
.
This allows for more fine-grained control over the dependencies of estimators, where needed, e.g., for estimators that require specific operating systems.
Enhancements#
BaseObject and base framework#
Benchmarking, Metrics, Splitters#
Forecasting#
[ENH] Hugging Face interface for pre-trained forecasters (#5796) @benHeid
[ENH] bagging/bootstrap forecaster extended to multivariate, exogeneous, hierarchical data (#6052) @fkiraly
[ENH] Minor
neuralforecast
related changes (#6312) @yarnabrina[ENH] Option to use future-unknown exogenous variables in
ForecastX
if passed inpredict
(#6199) @yarnabrina[ENH] Add
optimizer
param forneuralforecast
models (#6235) @pranavvp16[ENH] Update behavior of
freq="auto"
inneuralforecast
facing estimators (#6237) @geetu040[ENH]
TBATS
test parameters to cover doc example (#6292) @fkiraly
Neural networks#
[ENH] added test parameters to
CNNNetwork
andResnetNetwork
(#6209) @julian-fong[ENH] added test parameters for the LSTM FCNN network (#6281) @shlok191
Probability distributions and simulators#
Time series classification#
Time series clustering#
Time series regression#
Transformations#
Test framework#
Documentation#
[DOC] update installation instructions on
conda
soft dependencies (#6229) @fkiraly[DOC] add missing import statements to the
InvertAugmenter
docstring example (#6236) @Anteemony[DOC] Adding Usage Example in docstring (#6264) @MihirsinhChauhan
[DOC] improve docstring formatting in probabilistic metrics (#6256) @fkiraly
[DOC]
authors
tag - extension template instructions to credit 3rd party interfaced authors (#5953) @fkiraly[DOC] Refactor examples directory and link to docs/source/examples (#6210) @duydl
[DOC] Update README.md - time of Friday meetups (#6293) @fkiraly
[DOC] in extension templates, clarify handling of soft dependencies (#6325) @fkiraly
[DOC] author credits to
pycatch22
authors, fix missing documentation page (#6300) @fkiraly[DOC] added usage examples to multiple estimator docstrings (#6187) @MihirsinhChauhan
[DOC] Miscellaneous aesthetic improvements to docs UI (#6211) @duydl
[DOC] Remove redundant code in tutorial section 2.2.4 (#6267) @iamSathishR
[DOC] Added an example to
WhiteNoiseAugmenter
(#6200) @SamruddhiNavale
Maintenance#
[MNT] Basic fix and enhancement of doc local build process (#6128) @duydl
[MNT] Update dask requirement from
<2024.2.2
to<2024.4.2
, add new requireddataframe
extra topyproject.toml
. (#6282) @yarnabrina[MNT] fix isolation of
mlflow
soft dependencies (#6285) @fkiraly[MNT] add @slavik57 as a maintenance contributor for fixing
conda-forge
sktime-all-extras 0.28.0
release (#6308) @tm-slavik57[MNT] set GHA macos runner consistently to
macos-13
(#6328) @fkiraly[MNT] [Dependabot](deps-dev): Update
holidays
requirement from<0.46,>=0.29
to>=0.29,<0.47
(#6250) @dependabot[bot][MNT] [Dependabot](deps): Update
holidays
requirement from<0.47,>=0.29
to>=0.29,<0.48
(#6302) @dependabot[bot][MNT] [Dependabot](deps): Update
arch
requirement from<6.4.0,>=5.6
to>=5.6,<7.1.0
(#6307, #6309) @dependabot[bot][MNT] [Dependabot](deps): Update
pytest-xdist
requirement from<3.6,>=3.3
to>=3.3,<3.7
(#6316) @dependabot[bot][MNT] [Dependabot](deps): Update
mne
requirement from<1.7,>=1.5
to>=1.5,<1.8
(#6317) @dependabot[bot][MNT] Update
dask
requirement from<2024.2.2
to<2024.4.2
, add new requireddataframe
extra topyproject.toml
. (#6282) @yarnabrina
Fixes#
Data loaders#
[BUG] Fix
tsf
data error log and make it more precise (#6258) @pranavvp16
Forecasting#
[BUG] fix
FallbackForecaster
failing withForecastByLevel
whennan_predict_policy='raise'
(#6231) @ninedigits[BUG] fix failing test in
neuralforecast
auto freq, amidpandas
freq
deprecations (#6321) @geetu040
Probability distributions and simulators#
Time series clustering#
Time series regression#
[BUG] in
CNNRegressor
, fixself.model not found
error whenverbose=True
(#6232) @morestart
Transformations#
[BUG] Fix backfill of custom function in
window_feature
(#6294) @toandaominh1997[BUG] fixed indexing of return in
TSBootstrapAdapter
(#6326) @astrogilda[BUG] Fix
STLTransformer.inverse_transform
for univariate case (#6338) @fkiraly
Contributors#
@Anteemony, @astrogilda, @benHeid, @duydl, @fkiraly, @geetu040, @iamSathishR, @julian-fong, @MihirsinhChauhan, @MMTrooper, @mobley-trent, @morestart, @ninedigits, @pranavvp16, @Ram0nB, @SamruddhiNavale, @shlok191, @slavik57, @tm-slavik57, @toandaominh1997, @vandit98, @yarnabrina, @Z-Fran
Version 0.28.0 - 2024-03-27#
Maintenance release:
scheduled deprecations and change actions
support for
pandas 2.2.X
For last non-maintenance content updates, see 0.27.1.
Dependency changes#
sktime
now supportspandas
2.2.X
, bounds have been updated to<2.3.0,>=1.1
.temporian
(transformations soft dependency) bounds have been updated to>=0.7.0,<0.9.0
.pykalman-bardo
dependencies have been replaced by the original forkpykalman
.pykalman-bardo
has been merged back intopykalman
, which is no longer abandoned. This is a soft dependency, and the switch does not affect users installingsktime
using one of its dependency sets.
Deprecations and removals#
Forecasting#
in
ProphetPiecewiseLinearTrendForecaster
, the seasonality parametersyearly_seasonality
,weekly_seasonality
anddaily_seasonality
now have default values ofFalse
. To retain previous behaviour, set these parameters explicitly to"auto"
.
Transformations#
The
n_jobs
parameter in theCatch22
transformer is deprecated and will be removed in 0.29.0. Users should pass parallelization backend parameters viaset_config
instead. To specifyn_jobs
, use any of the backends supporting it in thebackend:parallel
configuration, such as"loky"
or"multithreading"
. Then_jobs
parameter should be passed via thebackend:parallel:params
configuration. To retain previous behaviour, with a specific setting ofn_jobs=x
, useset_config(**{"backend:parallel": "loky", "backend:parallel:params": {"n_jobs": x}})
.The
n_jobs
parameter in theCatch22Wrapper
transformer has been removed. Users should pass parallelization backend parameters viaset_config
instead. To specifyn_jobs
, use any of the backends supporting it in thebackend:parallel
configuration, such as"loky"
or"multithreading"
. Then_jobs
parameter should be passed via thebackend:parallel:params
configuration. To retain previous behaviour, with a specific setting ofn_jobs=x
, useset_config(**{"backend:parallel": "loky", "backend:parallel:params": {"n_jobs": x}})
.panel.dictionary_based.PAA
has been renamed toPAAlegacy
in 0.27.0, andsktime.transformations.series.PAA2
has been renamed toPAA
.PAA
is now the primary PAA implementation insktime
. After completion of the deprecation cycle, the estimators are no longer available under their previous names. To migrate dependent code to use the new names, do one of the following: 1. replace use ofPAA
fromsktime.transformations.panel.dictionary_based
by use ofPAA2
fromsktime.transformations.series.paa
, switching parameter names appropriately, or 2. replace use ofPAA
fromsktime.transformations.panel.dictionary_based
by use ofPAAlegacy
fromsktime.transformations.panel.dictionary_based
, without change of parameter values.panel.dictionary_based.SAX
has been renamed toSAXlegacy
in 0.27.0, whilesktime.transformations.series.SAX2
has been renamed toSAX
.SAX
is now the primary SAX implementation insktime
, while the formerSAX
will continue to be available asSAXlegacy
. After completion of the deprecation cycle, the estimators are no longer available under their previous names. To migrate dependent code to use the new names, do one of the following: 1. replace use ofSAX
fromsktime.transformations.panel.dictionary_based
by use ofSAX2
fromsktime.transformations.series.paa
, switching parameter names appropriately, or 2. replace use ofSAX
fromsktime.transformations.panel.dictionary_based
by use ofSAXlegacy
fromsktime.transformations.panel.dictionary_based
, without change of parameter values.
Contents#
[MNT] 0.28.0 deprecations and change actions (#6198) @fkiraly
[MNT] update
temporian
bound to<0.9.0,!=0.8.0
(#6222) @fkiraly[MNT] revert switch from
pykalman
topykalman-bardo
(#6114) @fkiraly[MNT] [Dependabot](deps-dev): Update
pytest-cov
requirement from<4.2,>=4.1
to>=4.1,<5.1
(#6215) @dependabot[bot][MNT] [Dependabot](deps): Bump
tj-actions/changed-files
from 43 to 44 (#6226) @dependabot[bot][ENH] stricter condition for
get_test_params
not failing in repo soft dependency isolation tests (#6223) @fkiraly
Version 0.27.1 - 2024-03-25#
Highlights#
Phase 1 integration with
temporian
-TemporianTransformer
transformer (#5980) @ianspektor, @achoum, @javiberPhase 1 integration with
tsbootstrap
-TSBootstrapAdapter
transformer (#5887) @benHeid, @astrogilda, @fkiralyShapelet transform from
pyts
available assktime
transformer (#6082) @Abhay-LejithCatch22
transformer now supports short aliases and parallelization backend selection (#6002) @julnowforecasting tuners can now return performances of all parameters, via
return_n_best_forecasters=-1
(#6031) @HassnHamadaNeuralForecastRNN
can now auto-detectfreq
(#6039) @geetu040time series splitters are now first-class objects, with suite tests and
check_estimator
support (#6051) @fkiraly
Dependency changes#
temporian
is now a soft dependency forsktime
(transformations)holidays
(transformations soft dependency) bounds have been updated to>=0.29,<0.46
dtw-python
bounds have been updated to ``>=1.3,<1.5`
Core interface changes#
time series splitters are now full first-class citizens. Interface conformance can now be checked with
check_estimator
.
Deprecations and removals#
Forecasting#
cINNForecaster
will be renamed to CINNForecaster in sktime 0.29.0.
The estimator is available under the future name at its
current location, and will be available under its deprecated name
until 0.30.0. To prepare for the name change,
replace any imports of cINNForecaster
with imports of CINNForecaster
.
Enhancements#
Benchmarking, Metrics, Splitters#
Data loaders#
[ENH] automatic inference of file ending in data loaders for single file types (#6045) @SaiRevanth25
Data types, checks, conversions#
Distances, kernels#
Forecasting#
[ENH] forecasting tuners,
return_n_best_forecasters=-1
to return performances of all forecasters (#6031) @HassnHamada[ENH]
NeuralForecastRNN
freq
auto-detect feature (#6039) @geetu040[ENH]
neuralforecast
based LSTM model by @pranavvp16 (#6047)[ENH] fix
ForecastingHorizon.freq
handling forpandas 2.2.X
by @fkiraly (#6057)
Neural network templates#
[ENH] added test params to
RNNNetwork
(#6155) @julian-fong
Time series classification#
Time series clustering#
[ENH] add new test parameter sets for
TimeSeriesKMeansTslearn
(#6195) @shankariraja
Time series regression#
[ENH] Migrate DL regressors from
sktime-dl
: CNTC, InceptionTime, MACNN (#6038) @nilesh05apr[ENH]
MultiplexRegressor
- autoML multiplexer for time series regressors (#6075) @ksharma6
Transformations#
[ENH]
TemporianTransformer
- interface totemporian
(#5980) @ianspektor, @achoum[ENH] Refactored and improved
Catch22
transformer - support for column names, short aliases, refactor topd.Series
,sktime
native parallelization (#6002) @julnow[ENH] Examples for
YtoX
transformer (#6028, #6059) @fkiraly, @geetu040[ENH] Shapelet transform interfacing
pyts
(#6082) @Abhay-Lejith[ENH] Add a
test_mstl
module checking iftransform
returns desired components by @kcentric (#6084)[ENH] Second test parameter set for Kalman Filter (#6095) @XinyuWuu
[ENH] Add
MSTL
import statement indetrend
by @geetu040 (#6116)
Test framework#
Documentation#
[DOC] Fix invalid use of single-grave in docstrings (#6023) @geetu040
[DOC] Fix typos in changelog by @yarnabrina (#6034)
[DOC] corrected Discord channel mention in developer guide (#6163) @shankariraja
[DOC] add credit to @rikstarmans in ``FallbackForecaster` (#6069) @fkiraly
[DOC] Added an example to MLPRegressor #4264 (#6135) @vandit98
[DOC] in
BaseSeriesAnnotator
, document theint_label
option (#6143) @Alex-JG3[DOC] fix typo in
_registry.py
(#6160) @pranavvp16[DOC] minor clarifications in mtype descriptions (#6078) @fkiraly
[DOC] ExponentialSmoothing default method change from L-BFGS-B to SLSQP (#6186) @manuel-munoz-aguirre
[DOC] fix missing exports in time series regression API ref (#6191) @fkiraly
[DOC] add more examples to CoC from python software foundation CoC (#6185) @fkiraly
[DOC] correct deprecation versions in
BaseDeepClassifier
docstring (#6197) @fkiraly[DOC] update maintainer tag information in docs and PR template (#6072) @fkiraly
[DOC] Add hall-of-fame widget to README (Added the Hall-of-fame section) #3716 (#6203) @KaustubhUp025
[DOC] Added docstring example to
DummyClassifier
(#6146) @YashKhare20[DOC] Added docstring for lstmfcn and MLP classifiers (#6136) @vandit98
[DOC] Fix syntax error in “getting started” example code block for Time Series Regression (#6022) @sahusiddharth
[DOC] Added blank lines to properly render
FourierFeatures
docstring,sp_list
(#5984) @tiloye[DOC] add missing author credits of @ivarzap (#6050) @fkiraly
[DOC] clarification regarding immutability of
self
-params in extension templates (#6053) @fkiraly[DOC] Fix invalid use of single-grave in docstrings (#6023) @geetu040
[DOC] Added docstring example to
CNNRegressor
(#6102) @meraldoantonio[DOC] corrected Discord channel mention in developer guide (#6163) @shankariraja
[DOC] add credit to @rikstarmans in
FallbackForecaster
(#6069) @fkiraly[DOC] fix typo in
_registry.py
(#6160) @pranavvp16[DOC] minor clarifications in mtype descriptions by @fkiraly (#6078)
[DOC]
ExponentialSmoothing
- fix docstring after default method change fromL-BFGS-B
to SLSQP`` (#6186) @manuel-munoz-aguirre[DOC] fix missing imports in time series regression API ref (#6191) @fkiraly
[DOC] add more examples to CoC from python software foundation CoC (#6185) @fkiraly
[DOC] correct deprecation versions in
BaseDeepClassifier
docstring (#6197) @fkiraly[DOC] update maintainer tag information in docs and PR template (#6072) @fkiraly
[DOC] Add hall-of-fame widget and section to README (#6203) @KaustubhUp025
Maintenance#
[MNT] [Dependabot](deps-dev): Update
holidays
requirement from<0.45,>=0.29
to>=0.29,<0.46
(#6164) @dependabot[bot][MNT] [Dependabot](deps-dev): Update
dtw-python
requirement from<1.4,>=1.3
to>=1.3,<1.5
(#6165) @dependabot[bot][MNT] [Dependabot](deps): Bump
tj-actions/changed-files
from 42 to 43 (#6125) @dependabot[bot][MNT] temporary skip sporadically failing tests for
ShapeletTransformPyts
(#6172) @fkiraly[MNT] create build tool to check invalid backticks (#6088) @geetu040
[MNT] decouple
catch22
module fromnumba
utilities (#6101) @fkiraly[MNT] Ensure Update Contributors does not run on main (#6189) @Greyisheep, @duydl
[MNT] initialize change cycle (0.28.0) for renaming
cINNForecaster
toCINNForecaster
(#6121) @geetu040[MNT] Fix failing tests due to
tensorflow
update (#6098) @benHeid[MNT] silence sporadic failure in
test_evaluate_error_score
(#6058) @fkiraly[MNT] update
statsforecast
version inforecasting
extra (#6064) @yarnabrina[MNT] Docker files updated by (#6076) @deysanjeeb
[MNT] deprecation action timing for
Catch22
changes (#6123) @fkiraly[MNT] run
update-contributors
workflow only on PR by (#6133) @fkiraly[MNT] temporary skip sporadically failing tests for
ShapeletTransformPyts
(#6172) @fkiraly[MNT] enable concurrency settings in ‘Install and Test’ GHA workflow (#6074) @MEMEO-PRO
[MNT] temporary skip for some sporadic failures on
main
(#6208) @fkiraly
Fixes#
Distances, kernels#
[BUG] resolve redundant or problematic statements in
numba
bounding matrix routines (#6183) @albertoazzari
Estimator registry#
Forecasting#
[BUG] Fixed
SARIMAX
failure whenX
is passed to predict but notfit
(#6005) @Abhay-Lejith[BUG] fix
BaseForecaster.predict_var
default ifpredict_proba
is implemented (#6067) @fkiraly[BUG] In
ForecastingHorizon
, ignoreValueError
onpd.infer_freq
when index has fewer than 3 values (#6097) @tpvasconcelos
Time series classification#
Time series regression#
Transformations#
[BUG] fix
FeatureUnion
for primitive outputs (#6079) @fkiraly, @fspinna[BUG] Fix unexpected NaN values in
Summarizer
(#6081) @ShreeshaM07[BUG] Update
_shapelet_transform_numba.py
to improve numerical stability (#6141) @stevcabello
Test framework#
Webpage#
Contributors#
@Abhay-Lejith, @achoum, @albertoazzari, @Alex-JG3, @astrogilda, @benHeid, @Cyril-Meyer, @deysanjeeb, @duydl, @fkiraly, @fnhirwa, @fspinna, @geetu040, @Greyisheep, @HassnHamada, @ianspektor, @javiber, @julian-fong, @julnow, @KaustubhUp025, @kcentric, @ksharma6, @manuel-munoz-aguirre, @MBristle, @MEMEO-PRO, @meraldoantonio, @nilesh05apr, @pranavvp16, @SaiRevanth25, @sahusiddharth, @shankariraja, @stevcabello, @tiloye, @tpvasconcelos, @vandit98, @XinyuWuu, @YashKhare20
Version 0.27.0 - 2024-02-28#
Maintenance release:
scheduled deprecations and change actions
support for soft dependency
numba 0.59
andnumba
underpython 3.12
minor documentation updates, website updates for GSoC 2024
For last non-maintenance content updates, see 0.26.1.
Dependency changes#
numba
bounds have been updated to<0.60
.
Deprecations and removals#
Forecasting tuners#
in forecasting tuners
ForecastingGridSearchCV
,ForecastingRandomizedSearchCV
,ForecastingSkoptSearchCV
, thejoblib
backend specific parametersn_jobs
,pre_dispatch
have been removed. Users should pass backend parameters via thebackend_params
parameter instead. Direct replacements arebackend='joblib'
, andn_jobs
andpre_dispatch
passed viabackend_params
.
Transformations#
in
SplitterSummarizer
, theremember_data
argument has been removed. Users should use thefit_on
andtransform_on
arguments instead. Logic identical argument replacements are:remember_data=True
withfit_on='all_train'
andtransform_on='all_train'
; andremember_data=False
with"fit_on='transform_train'
andtransform_on='transform_train'
.panel.dictionary_based.PAA
has been renamed toPAAlegacy
in 0.27.0, andsktime.transformations.series.PAA2
has been renamed toPAA
.PAA
is now the primary PAA implementation insktime
, while the formerPAA
will continue to be available asPAAlegacy
. Both estimators are also available under their former name until 0.28.0. To prepare for the name change, do one of the following: 1. replace use ofPAA
fromsktime.transformations.panel.dictionary_based
by use ofPAA2
fromsktime.transformations.series.paa
, switching parameter names appropriately, or 2. replace use ofPAA
fromsktime.transformations.panel.dictionary_based
by use ofPAAlegacy
fromsktime.transformations.panel.dictionary_based
, without change of parameter values.panel.dictionary_based.SAX
has been renamed toSAXlegacy
in 0.27.0, whilesktime.transformations.series.SAX2
has been renamed toSAX
.SAX
is now the primary SAX implementation insktime
, while the formerSAX
will continue to be available asSAXlegacy
. Both estimators are also available under their former name until 0.28.0. To prepare for the name change, do one of the following: 1. replace use ofSAX
fromsktime.transformations.panel.dictionary_based
by use ofSAX2
fromsktime.transformations.series.paa
, switching parameter names appropriately, or 2. replace use ofSAX
fromsktime.transformations.panel.dictionary_based
by use ofSAXlegacy
fromsktime.transformations.panel.dictionary_based
, without change of parameter values.
Contents#
Documentation#
[DOC] improved formatting of
HierarchyEnsembleForecaster
docstring (#6008) @fkiraly[DOC] add missing
PluginParamsTransformer
to API reference (#6010) @fkiraly[DOC] update contact links in code of conduct (#6011) @fkiraly
[DOC] 2024 summer programme links on
sktime.net
landing page (#6013) @fkiraly
Maintenance#
[MNT] 0.27.0 deprecations and change actions (#5974) @fkiraly
[MNT] [Dependabot](deps-dev): Update
numba
requirement from<0.59
to<0.60
(#5877) @dependabot[bot]
Version 0.26.1 - 2024-02-26#
Highlights#
Conditional Invertible Neural Network forecaster - from 2022 BigDEAL challenge (#5339) @benHeid
neuralforecast
adapter and rnn forecaster (#5962) @yarnabrinaFallbackForecaster
now supports probabilistic forecasters and setting of nan handling policy (#5847, #5924) @ninedigitsstatsforecast
AutoTBATS
interface (#5908) @yarnabrinak-nearest neighbor classifiers from
pyts
andtslearn
(#5939, #5952) @fkiralydeep learning regressors from
sktime-dl
migrated: FCN, LSTMFCN, MLP (#6001) @nilesh05apr
Dependency changes#
dask
(data container and parallelization back-end) bounds have been updated to<2024.2.2
holidays
(transformations soft dependency) bounds have been updated to>=0.29,<0.44
pyts
is now a soft dependency for classification and transformations
Core interface changes#
Transformations#
All transformation dunders now automatically coerce sklearn
transformers to
sktime
transformers, wrapping in TabularToSeriesAdaptor
is no longer necessary
when using sklearn
transformers in sktime
pipelines specified by dunders.
Deprecations and removals#
Transformations#
The n_jobs
parameter of Catch22Wrapper
has been deprecated
and will be removed in sktime
0.28.0.
Users should pass parallelization backend parameters via set_config
instead.
Enhancements#
Benchmarking, Metrics, Splitters#
Data loaders#
[ENH] add encoding parameter in data loaders (#6000) @Cyril-Meyer
Data types, checks, conversions#
Forecasting#
[ENH] Conditional Invertible Neural Network forecaster (#5339) @benHeid
[ENH] Expose seasonality parameters of
ProphetPiecewiseLinearTrendForecaster
(#5834) @sbuse[ENH] centralize logic for safe clone of delegator tags - forecasting (#5845) @fkiraly
[ENH]
FallbackForecaster
- support for probabilistic forecasters (#5847) @ninedigits[ENH] interface to
ARIMA
fromstatsmodels
library (#5857) @arnaujc91[ENH] Improved specificity of some error messages in forecasters and transformations (#5882) @fkiraly
[ENH]
statsforecast
AutoTBATS
direct interface estimator (#5908) @yarnabrina[ENH] Several updates in direct
statsforecast
interface estimators (#5920) @yarnabrina[ENH] Add nan policy handler for
FallbackForecaster
(#5924) @ninedigits[ENH]
ForecastX
option to use future-known variables as exogenous variables in forecasting future-unknown exogenous variables (#5926) @fkiraly[ENH]
neuralforecast
adapter and rnn forecaster (#5962) @yarnabrina[ENH] rearchitect
ForecastingSkoptSearchCV
on abstract parallelization backend (#5973) @fkiraly[ENH] in
ForecastingPipeline
, allowNone
X
to be passed to transformers (#5977) @albahhar, @fkiraly
Time series annotation#
[ENH] second set of test parameters for
GMMHMM
(#5931) @sanjayk0508
Time series classification#
Time series regression#
[ENH] Migrate DL regressors from
sktime-dl
: FCN, LSTMFCN, MLP (#6001) @nilesh05apr
Transformations#
[ENH]
pyts
adapter and interface topyts
ROCKET
(#5851) @fkiraly[ENH] in transformer dunders, uniformize coercion of
sklearn
transformers (#5869) @fkiraly[ENH] Improved specificity of some error messages in forecasters and transformations (#5882) @fkiraly
[ENH] second set of test parameters for
TSInterpolator
(#5910) @sanjayk0508[ENH] improved output type checking error messages in
BaseTransformer.transform
(#5921) @fkiraly[ENH] refactor
Catch22Wrapper
transformer to usepd.Series
type internally (#5983) @fkiraly
Test framework#
Fixes#
Forecasting#
Pipelines#
Probability distributions and simulators#
Time series classification#
Transformations#
[BUG] fix input check error message in BaseTransformer (#5947) @fkiraly
[BUG] Fixed transform method of MSTL transformer (#5996) @Abhay-Lejith
Maintenance#
[MNT] improvements to modular CI framework - part 2, merge frameworks (#5785) @fkiraly
[MNT] fix moto breaking change by using different mocking methods depending on version (#5858) @yarnabrina
[MNT] addressed
FutureWarning
for RMSE by using newerroot_mean_absolute_error
function (#5884) @yarnabrina[MNT] Skip
mlflow
tests when soft-dependencies are absent (#5888) @achieveordie[MNT] update versions of several actions (#5929) @yarnabrina
[MNT] Add codecov token to coverage uploads (#5930) @yarnabrina
[MNT] CI on main fix: add checkout step to detect steps in CI (#5945) @fkiraly
[MNT] avoid running unit tests in CI for documentation/template/etc changes (#5976) @yarnabrina
[MNT] [Dependabot](deps-dev): Update dask requirement from
<2024.1.1
to<2024.1.2
(#5861) @dependabot[bot][MNT] [Dependabot](deps-dev): Update dask requirement from
<2024.1.2
to<2024.2.1
(#5958) @dependabot[bot][MNT] [Dependabot](deps-dev): Update holidays requirement from
<0.43,>=0.29
to>=0.29,<0.44
(#5965) @dependabot[bot][MNT] [Dependabot](deps-dev): Update dask requirement from
<2024.2.1
to<2024.2.2
(#5991) @dependabot[bot]
Documentation#
[DOC] recipes for simple parameter change and deprecation management (#5875) @fkiraly
[DOC] fixing broken link to
DropNA
in API reference (#5899) @sbuse[DOC] remove obsolete request for contribution (python 3.10 compatibility) in install docs (#5901) @fkiraly
[DOC] add “maintainers” column to estimator overview (#5911) @fkiraly
[DOC] add GitHub ID hyperlinks in estimator table (#5916) @fkiraly
[DOC] fix odd formatting in deprecation timeline example (#5957) @fkiraly
[DOC] improved glossary and forecasting docstrings (#5968) @fkiraly
[DOC] remove type annotations in extension templates (#5970) @fkiraly
[DOC] Typo in documentation, fixed monotonous to monotonic (#5946) @eduardojp26
[DOC] fixed typo in docstring (#5949) @yarnabrina
[DOC] fixed typo in docstring (#5950) @yarnabrina
[DOC] format docstrings in
feature_selection.py
correctly (#5994) @oleeviyababu
Contributors#
@Abhay-Lejith, @achieveordie, @albahhar, @arnaujc91, @benHeid, @ciaran-g, @Cyril-Meyer, @eduardojp26, @fkiraly, @ivarzap, @ninedigits, @oleeviyababu, @sanjayk0508, @sbuse, @Vasudeva-bit, @yarnabrina
Version 0.26.0 - 2024-01-27#
Maintenance release:
support for
scikit-learn 1.4.X
scheduled deprecations
minor bugfix
For last non-maintenance content updates, see 0.25.1.
Dependency changes#
scikit-learn
bounds have been updated to>=0.24.0,<1.5.0
.
Deprecations and removals#
Benchmarking, Metrics, Splitters#
in forecasting
evaluate
,kwargs
have been removed. Users should pass backend parameters via thebackend_params
parameter instead.
Data types, checks, conversions#
in
check_is_mtype
, the default ofmsg_return_dict
has now changed to"dict"
Forecasting tuners#
in forecasting tuners
ForecastingGridSearchCV
,ForecastingRandomizedSearchCV
,ForecastingSkoptSearchCV
, use ofjoblib
backend specific parametersn_jobs
,pre_dispatch
has been deprecated, and will be removed insktime
0.27.0. Users should pass backend parameters via thebackend_params
parameter instead.
Time series classification#
In
SimpleRNNClassifier
, thenum_epochs
parameter has been renamed ton_epochs
. The original parameter of namenum_epochs
has now been removed.
Time series regression#
In
SimpleRNNRegressor
, thenum_epochs
parameter has been renamed ton_epochs
. The original parameter of namenum_epochs
has now been removed.
Contents#
[MNT] 0.26.0 deprecations and change actions (#5817) @fkiraly
[MNT] [Dependabot](deps-dev): Update
scikit-learn
requirement from<1.4.0,>=0.24
to>=0.24,<1.5.0
(#5776) @dependabot[bot][MNT] [Dependabot](deps): Bump styfle/cancel-workflow-action from
0.12.0
to0.12.1
(#5839) @dependabot[bot][MNT] [Dependabot](deps): Bump dorny/paths-filter from
2
to3
(#5838) @dependabot[bot][BUG] fix tag handling in
IgnoreX
(#5843) @tpvasconcelos, @fkiraly
Version 0.25.1 - 2024-01-24#
Highlights#
in
make_reduction
, direct reduction forecaster now supports probabilistic tabular regressors fromskpro
(#5536) @fkiralynew, efficient, parallelizable PAA and SAX transformer implementations, available as
PAA2
,SAX2
(#5742) @steenrotsmanFallbackForecaster
, fallback chain of multiple forecaster for exception handling (#5779) @ninedigitstime series classification:
sktime
native grid search, multiplexer for autoML (#4596, #5678) @achieveordie, @fkiralyIgnoreX
- forecasting compositor to ignore exogenous data, for use in tuning (#5769) @hliebert, @fkiralyclassifier migrated from
sktime-dl
: CNTC classifier (#3978) @aurumnpegasusauthors 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
(#5771) @dependabot[bot]mne
(transformations soft dependency) bounds have been updated to>=1.5,<1.7
(#5585) @dependabot[bot]dask
(data container and parallelization back-end) bounds have been updated to<2024.1.1
(#5748) @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 insktime
proper and compatible third party packages. It is also used to generate mini-package headers used in lookup functionality of thesktime
webpage.author and maintainer information in the
sktime
package is no longer recorded inCODEOWNERS
, 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 thesktime
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
andself._X
by setting the config"remember_data"
toFalse
viaset_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 aPluginParamsForecaster
orPluginParamsTransformer
with all fitted parameters (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 aDeseasonalizer
whosesp
(seasonality period) parameter is tuned bySeasonalityACF
, estimatingsp
via the ACF significance criterion on the series.The
*
dunder binds to the left, for instanceDifferencer() * SeasonalityACF() * Deseasonalizer()
will construct aDeseasonalizer
whosesp
(seasonality period) parameter is tuned bySeasonalityACF
, estimatingsp
via the ACF significance criterion on first differenced data (for stationarity). Here first differencing is not applied to theDeseasonalizer
, but only to the input ofSeasonalityACF
, as the first*
constructs a parameter estimator, and the second*
plugs in the parameter estimator into theDeseasonalizer
.
Transformations#
transformations, i.e.,
BaseTransformer
descendant instances, can now also returnNone
in_transform
, this is interpreted as empty data.
Deprecations and removals#
Transformations#
panel.dictionary_based.PAA
will be renamed toPAAlegacy
insktime
0.27.0, whilesktime.transformations.series.PAA2
will be renamed toPAA
.PAA2
will become the primary PAA implementation insktime
, while the currentPAA
will continue to be available asPAAlegacy
. 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 ofPAA
fromsktime.transformations.panel.dictionary_based
by use ofPAA2
fromsktime.transformations.series.paa
, switching parameter names appropriately, or 2. replace use ofPAA
fromsktime.transformations.panel.dictionary_based
by use ofPAAlegacy
fromsktime.transformations.panel.dictionary_based
, without change of parameter values.panel.dictionary_based.SAX
will be renamed toSAXlegacy
insktime
0.27.0, whilesktime.transformations.series.SAX2
will be renamed toSAX
.SAX2
will become the primary SAX implementation insktime
, while the currentSAX
will continue to be available asSAXlegacy
. 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 ofSAX
fromsktime.transformations.panel.dictionary_based
by use ofSAX2
fromsktime.transformations.series.paa
, switching parameter names appropriately, or 2. replace use ofSAX
fromsktime.transformations.panel.dictionary_based
by use ofSAXlegacy
fromsktime.transformations.panel.dictionary_based
, without change of parameter values.
Enhancements#
BaseObject and base framework#
[ENH] update
deep_equals
to accommodate plugins, e.g., forpolars
(#5504) @fkiraly[ENH] Replace
isinstance
byobject_type
tag based checks (#5657) @benheid[ENH] enable
all_tags
to retrieve estimator and object tags (#5798) @fkiraly[ENH] remove maintainer information from
CODEOWNERS
in favour of estimator tags (#5808) @fkiraly[ENH] author and maintainer tags for alignment and distances modules (#5801) @fkiraly
[ENH] author and maintainer tags for forecasting module (#5802) @fkiraly
[ENH] author and maintainer tags for distributions and parameter fitting module (#5803) @fkiraly
[ENH] author and maintainer tags for classification, clustering and regression modules (#5807) @fkiraly
[ENH] author and maintainer tags for transformer module (#5800) @fkiraly
Benchmarking, Metrics, Splitters#
Data types, checks, conversions#
Forecasting#
[ENH]
Imputer
: conditional parameter handling logic (#3916) @aiwalter, @fkiraly`[ENH] support for probabilistic regressors (
skpro
) inmake_reduction
, direct reduction (#5536) @fkiraly[ENH] private utility for
BaseForecaster
get columns, for allpredict
-like functions (#5590) @fkiraly[ENH] adding second test parameters for
TBATS
(#5689) @NguyenChienFelix33[ENH] config to turn off data memory in forecasters (#5676) @fkiraly, @corradomio
[ENH] Simplify conditional statements in direct reducer (#5725) @fkiraly
[ENH] forecasting compositor to ignore exogenous data (#5769) @hliebert, @fkiraly
[ENH] add
disp
parameter toSARIMAX
to control output verbosity (#5770) @tvdboom[ENH] expose parameters supported by
fit
method ofSARIMAX
instatsmodels
(#5787) @yarnabrina[ENH]
FallbackForecaster
, fallback upon fail with multiple forecaster chain (#5779) @ninedigits
Parameter estimation and hypothesis testing#
[ENH] Simplify
BaseEstimator._get_fitted_params()
andBaseParamFitter
inheritance of that method (#5633) @tpvasconcelos[ENH] parameter plugin for estimator into transformers, right concat dunder (#5764) @fkiraly
Probability distributions and simulators#
Time series classification#
[ENH] migrating CNTC network and classifier for classification from
sktime-dl
(#3978) @aurumnpegasus, @fkiraly[ENH] grid search for time series classification (#4596) @achieveordie, @fkiraly
[ENH] reduce private coupling of
IndividualBOSS
classifier andBaseClassifier
(#5654) @fkiraly[ENH] refactor structure of time series forest classifier related files (#5751) @fkiraly
Transformations#
[ENH] better explanation about fit/transform instance linking in instance-wise transformers in error messages, and pointer to common solution (#5652) @fkiraly
[ENH] New
PAA
andSAX
transformer implementations (#5742) @steenrotsman[ENH] feature upgrade for
SplitterSummarizer
- granular control of innerfit
/transform
input (#5750) @fkiraly[ENH] allow
BaseTransformer._transform
to returnNone
(#5772) @fkiraly, @hliebert
Test framework#
Fixes#
BaseObject and base framework#
[BUG] fix scitype inference utility for all cases (#5672) @fkiraly
[BUG] fixes for minor typos in error message related to custom
joblib
backend selection (#5724) @fkiraly[BUG] handles
AttributeError
inshow_versions
when dependency lacks__version__
(#5793) @yarnabrina[BUG] fix type error in parallelization backend test fixture refactor (#5760) @fkiraly
Benchmarking, Metrics, Splitters#
Data loaders#
[BUG] fix
extract_path
arg insktime.datasets.load_UCR_UEA_dataset
(#5744) @steenrotsman
Data types, checks, conversions#
Forecasting#
Pipelines#
Time series classification#
Time series regression#
Transformations#
[BUG] skip sporadic test errors in
ExponentialSmoothing
(#5516) @achieveordie[BUG] fix sporadic permutation of internal feature columns in
TSFreshClassifier.predict
(#5673) @fkiraly[BUG] fix backend strings in transformer
test_base
(#5695) @fkiraly[BUG] Ensure
MultiRocketMultivariate
usesrandom_state
(#5710) @chrico-bu-uab
Test framework#
[BUG] Fixing dockerized tests (#5426) @kurayami07734
Maintenance#
[MNT] [Dependabot](deps-dev): Update sphinx-issues requirement from
<4.0.0
to<5.0.0
(#5792) @dependabot[bot][MNT] [Dependabot](deps): Bump tj-actions/changed-files from 41 to 42 (#5777) @dependabot[bot]
[MNT] [Dependabot](deps-dev): Update arch requirement from
<6.3.0,>=5.6
to>=5.6,<6.4.0
(#5771) @dependabot[bot][MNT] [Dependabot](deps-dev): Update mne requirement from
<1.6,>=1.5
to>=1.5,<1.7
(#5585) @dependabot[bot][MNT] [Dependabot](deps-dev): Update dask requirement from
<2023.12.2
to<2024.1.1
(#5748) @dependabot[bot][MNT] improvements to modular CI framework - clearer naming,
pyproject
handling (#5713) @fkiraly[MNT] fix faulty deprecation logic for
n_jobs
,pre_dispatch
in forecasting tuners, bump deprecation to 0.27.0 (#5784) @fkiraly[MNT] update python version in binder dockerfile to 3.11 (#5762) @fkiraly
[MNT] address various deprecations from
pandas
(#5733) @fkiraly, @yarnabrina[MNT]
scikit-learn 1.4.0
compatibility patches (#5782, #5811) @fkiraly[MNT] Code quality updates (#5786) @yarnabrina
[MNT] change cycle for making
SAX2
andPAA2
primary implementation renamed toSAX
,PAA
(#5799) @fkiraly[MNT] remove maintainer information from
CODEOWNERS
in favour of estimator tags (#5808) @fkiraly[MNT] address
pd.DataFrame.groupby(axis=1)
deprecation inEnsembleForecaster
(#5707) @ninedigits[MNT] add missing
__author__
field forMultiRocket
andMultiRocketMultivariate
(#5698) @fkiraly[MNT] addressing
DataFrame.groupby(axis=1)
deprecation in metric classes (#5709) @fkiraly[MNT] added upper bound
pycatch22<0.4.5
intransformations
dependency set to avoid installation error on windows (#5670) @yarnabrina[MNT] refactoring new CI to fix some bugs and other minor enhancements (#5638) @yarnabrina
[MNT] Update
tslearn
dependency version in pyproject.toml (#5686) @DManowitz[MNT] fix several spelling mistakes (#5639) @yarnabrina
Documentation#
[DOC] comment in
CONTRIBUTORS.md
that source file isall-contributorsrc
(#5687) @fkiraly[DOC] improved docstring for
TrendForecaster
andPolynomialTrendForecaster
(#5747) @fkiraly[DOC] improved docstring for
TimeSeriesForestClassifier
(#5741) @fkiraly[DOC] fix
scitype
string of transformers in API ref (#5759) @fkiraly[DOC] improved formatting of tag section in extension templates (#5812) @fkiraly
[DOC]
Imputer
: docstring clarity improvement, conditional parameter handling logic (#3916) @aiwalter, @fkiraly`[DOC] extension template for time series splitters (#5769) @fkiraly
[DOC] update soft dependency handling guide for tests with tag based dependency checking (#5756) @fkiraly
[DOC] fix all import failures in API docs and related missing exports (#5752) @fkiraly
[DOC] improve clarity in describing
strategy="refit"
in forecasting tuners’ docstrings (#5711) @fkiraly[DOC] correct type statement in forecasting tuner regarding
forecaster
(#5699) @fkiraly[DOC] various minor API reference improvements (#5721) @fkiraly
[DOC] add
ReducerTransform
andDirectReductionForecaster
to API reference (#5690) @fkiraly[DOC] remove outdated
sktime-dl
reference inREADME.md
(#5685) @fkiraly
Contributors#
@achieveordie, @aiwalter, @alex-jg3, @aurumnpegasus, @benheid, @chrico-bu-uab, @corradomio, @DManowitz, @fkiraly, @hliebert, @NguyenChienFelix33, @ninedigits, @kurayami07734, @steenrotsman, @tpvasconcelos, @tvdboom, @yarnabrina
Version 0.25.0 - 2023-12-26#
Release with base class updates and scheduled deprecations:
framework support for multioutput classifiers, regressors (#5408, #5651, #5662) @Vasudeva-bit, @fkiraly
framework support for panel-to-series transformers (#5351) @benHeid
scheduled deprecations
For last larger feature update, see 0.24.2.
Core interface changes#
Time series classification and regression#
the base class framework now supports multioutput classifiers or regressors. All classifiers and regressors are now able to make multioutput predictions, including all third party classifiers and regressors. A multioutput
y
can now be passed, in the form of a 2Dnp.ndarray
orpd.DataFrame
, with one column per output. Thepredict
method will then return a predicted output of the same type. To retain downwards compatibility,predict
will always return a 1Dnp.ndarray
for univariate outputs, this is currently not subject to deprecation.Genuinely multioutput classifiers and regressors are labelled with the new tag
capability:multioutput
beingTrue
. All other classifiers and regressors broadcast by column ofy
, and a parallelization backend can be selected viaset_config
, by setting thebackend:parallel
andbackend:parallel:params
configuration flags, see theset_config
docstring for details. Broadcasting extends automatically to all existing third party classifiers and regressors via base class inheritance oncesktime
is updated, the estimator classes themselves do not need to be updated.classifiers and regressors now have a tag
y_inner_mtype
, this allows extenders to specify an internalmtype
, ofTable
scitype. The mtype specified i the tag is the guaranteed mtype ofy
seen in the private_fit
method. The default is the same as previously implicit, thenumpy1D
mtype. Therefore, third party classifiers and regressors do not need to be updated, and should be fully upwards compatible.
Transformations#
the base class framework now supports transformations that aggregate
Panel
data toSeries
data, i.e., panel-to-series transformers, e.g., averaging. Such transformers are identified by the tagsscitype:transform-input
being"Panel"
, andscitype:transform-output
being"Series"
. An example isMerger
.
Deprecations and removals#
Benchmarking, Metrics, Splitters#
time series splitters, i.e., descendants of
BaseSplitter
, have moved fromsktime.forecasting.model_selection
tosktime.split
. They are no longer available in the old locationsktime.forecasting.model_selection
, since 0.25.0. Forecasting tuners are still present insktime.forecasting.model_selection
, and their locationn is not subject to deprecation.in forecasting
evaluate
, the order of columns in the return data frame has changed. Users should consult the docstring ofevaluate
for details.in forecasting
evaluate
, thecompute
argument was removed, after deprecation in 0.24.0. Its purpose was to distinguish lazy or eager evaluation in thedask
parallelization backend. To switch between lazy and eager evaluation, users should instead selectdask
ordask_lazy
via thebackend
parameter.in forecasting
evaluate
,kwargs
are deprecated, removal has been moved to 0.26.0. Users should pass backend parameters via thebackend_params
parameter instead.
Contents#
[ENH] Multioutput capability for all time series classifiers and regressors, broadcasting and tag (#5408) @Vasudeva-bit
[ENH] Support for panel-to-series transformers, merger transformation (#5351) @benHeid
[ENH] allow object
dtype
-s inpandas
basedTable
mtype-s (#5651) @fkiraly[ENH] intermediate base class for panel tasks - classification, regression (#5662) @fkiraly
[MNT] CI element to test blogpost notebooks (#5663) @fkiraly, @yarnabrina
[MNT] 0.25.0 deprecations and change actions (#5613) @fkiraly
Contributors#
Version 0.24.2 - 2023-12-24#
Highlights#
FunctionParamFitter
for custom parameter switching, e.g., applying forecaster or transformer conditional on instance properties (#5630) @tpvasconceloscalibration_plot
for probabilistic forecasts (#5632) @benHeidprophet
based piecewise linear trend forecaster (#5592) @sbusecustom
joblib
backends are now supported in parallelization viaset_config
(#5537) @fkiraly
Dependency changes#
dask
(data container and parallelization back-end) bounds have been updated to<2023.12.2
.holidays
(transformations soft dependency) bounds have been updated to>=0.29,<0.40
.
Core interface changes#
Forecasting#
fit_predict
now allows specification ofX_pred
argument forpredict
. If passed,X_pred
is used asX
inpredict
, instead ofX
. This is useful for forecasters that expectX
to be subset to the forecasting horizon.custom
joblib
backends for hierarchical and multivariate forecast broadcasting are now supported. To use a customjoblib
backend, useset_config
to set thebackend:parallel
configuration flag to"joblib"
, and set thebackend
parameter in thedict
set viabackend:parallel:params
to the name of the customjoblib
backend. Further backend parameters can be passed in the samedict
. See docstring ofset_config
for details.
Time series classification#
In
SimpleRNNClassifier
, thenum_epochs
parameter is deprecated and has been renamed ton_epochs
.num_epochs
can be used untilsktime
0.25.last, but will be removed insktime
0.26.0. A deprecation warning is raised ifnum_epochs
is used.
Time series regression#
In
SimpleRNNRegressor
, thenum_epochs
parameter is deprecated and has been renamed ton_epochs
.num_epochs
can be used untilsktime
0.25.last, but will be removed insktime
0.26.0. A deprecation warning is raised ifnum_epochs
is used.
Transformations#
custom
joblib
backends for hierarchical and multivariate transformer broadcasting are now supported. To use a customjoblib
backend, useset_config
to set thebackend:parallel
configuration flag to"joblib"
, and set thebackend
parameter in thedict
set viabackend:parallel:params
to the name of the customjoblib
backend. Further backend parameters can be passed in the samedict
. See docstring ofset_config
for details.
Enhancements#
BaseObject and base framework#
[ENH] improved error messages for input checks in base classes (#5510) @fkiraly
[ENH] support for custom
joblib
backends in parallelization (#5537) @fkiraly[ENH] consistent use of
np.ndarray
for mtype tags (#5648) @fkiraly[ENH] set output format parameter in
sktime
internalcheck_is_mtype
calls to silence deprecation warnings (#5563) @benHeid
Benchmarking, Metrics, Splitters#
Data types, checks, conversions#
[ENH]
sklearn
facing coercion utility forpd.DataFrame
, tostr
columns (#5550) @fkiraly[ENH]
deep_equals
- clearer return on diffs fromdtypes
andindex
, relaxation ofMultiIndex
equality check (#5560) @fkiraly[ENH] Uniformization of
pandas
index types in mtypes (#5561) @fkiraly[ENH]
n_features
andfeature_names
metadata field for time series mtypes (#5596) @fkiraly
Forecasting#
[ENH] expected forecast prediction index utility in
ForecastingHorizon
(#5501) @fkiraly[ENH] refactor index generation in reducers to use
ForecastingHorizon
method (#5539) @fkiraly[ENH] fix index name check for reduction forecasters (#5543) @fkiraly
[ENH] forecaster
fit_predict
withX_pred
argument forpredict
(#5562) @fkiraly[ENH] refactor
DirectReductionForecaster``to use ``sklearn
input coercion utility (#5581) @fkiraly[ENH] export and test
DirectReductionForecaster
(#5582) @fkiraly[ENH]
prophet
based piecewise linear trend forecaster (#5592) @sbuse[ENH] Add
fit_kwargs
toProphet
(#5597) @tpvasconcelos[ENH]
Croston
test parameters - integer smoothing parameter (#5608) @NguyenChienFelix33[ENH]
prophet
adapter - safer handling offit_kwargs
(#5622) @fkiraly
Parameter estimation and hypothesis testing#
[ENH] Add new
FunctionParamFitter
parameter estimator (#5630) @tpvasconcelos
Time series annotation#
Time series classification#
[ENH] enable testing
MrSQM
for persistence innsfa>0
case after upstream bugfix (#5171) @fkiraly[ENH]
num_epochs
renamed ton_epochs
inSimpleRNNClassifier
andSimpleRNNRegressor
(#5607) @aeyazadil
Time series clustering#
Transformations#
Visualization#
Test framework#
Fixes#
BaseObject and base framework#
Data types, checks, conversions#
[BUG] Fix typos in mtype tags
np.ndarray
, from erroneousnd.array
(#5645) @yarnabrina
Forecasting#
[BUG] in
ARCH
, fixstr
coercion ofpd.Series
name (#5407) @Vasudeva-bit[BUG] in reduced regressor, copy or truncate
X
if it does not fit the forecasting horizon (#5542) @benHeid[BUG] pass correct level argument from
StatsForecastBackAdapter
tostatsforecast
(#5587) @sd2k[BUG] fix
HierarchyEnsembleForecaster
returned unexpected predictions if data had only one hierarchy level and forecasters specified by node (#5615) @VyomkeshVyas[BUG] fix loss of time zone attribute in
ForecastingHorizon.to_absolute
(#5628) @fkiraly[BUG] change index match to integer in
_StatsModelsAdapter
predict (#5642) @ciaran-g
Transformations#
Visualization#
Maintenance#
[MNT] CI Modifications (#5498) @yarnabrina
[MNT] rename variables in base (#5502) @yarnabrina
[MNT] addressing various
pandas
related deprecations (#5583) @fkiraly[MNT] Update pre commit hooks (#5646) @yarnabrina
[MNT] [Dependabot](deps-dev): Update
pytest-xdist
requirement from<3.4,>=3.3
to>=3.3,<3.5
(#5551) @dependabot[bot][MNT] [Dependabot](deps-dev): Update
dask
requirement from<2023.7.1
to<2023.11.1
(#5552) @dependabot[bot][MNT] [Dependabot](deps-dev): Update
dask
requirement from<2023.11.1
to<2023.12.2
(#5629) @dependabot[bot][MNT] [Dependabot](deps-dev): Update
holidays
requirement from<0.36,>=0.29
to>=0.29,<0.37
(#5538) @dependabot[bot][MNT] [Dependabot](deps-dev): Update
holidays
requirement from<0.37,>=0.29
to>=0.29,<0.38
(#5565) @dependabot[bot][MNT] [Dependabot](deps-dev): Update
holidays
requirement from<0.38,>=0.29
to>=0.29,<0.40
(#5637) @dependabot[bot][MNT] [Dependabot](deps-dev): Update
sphinx-gallery
requirement from<0.15.0
to<0.16.0
(#5566) @dependabot[bot][MNT] [Dependabot](deps-dev): Update
pytest-xdist
requirement from<3.5,>=3.3
to>=3.3,<3.6
(#5567) @dependabot[bot][MNT] [Dependabot](deps-dev): Update
pycatch22
requirement from<0.4.4
to<0.4.5
(#5542) @dependabot[bot][MNT] [Dependabot](deps): Bump actions/download-artifact from 3 to 4 (#5627) @dependabot[bot]
[MNT] [Dependabot](deps): Bump actions/setup-python from 4 to 5 (#5605) @dependabot[bot]
[MNT] [Dependabot](deps): Bump actions/upload-artifact from 3 to 4 (#5626) @dependabot[bot]
Documentation#
[DOC] Correct ReST syntax in “RocketClassifier” (#5564) @rahulporuri
[DOC] Added notebook accompanying Joanna Lenczuk’s blog post for testing (#5604) @onyekaugochukwu, @joanlenczuk
[DOC] Remove extra parameter in docstring with incorrect definition (#5617) @wayneadams
[DOC] fix typo in
AA_datatypes_and_datasets.ipynb
panel data loading example (#5594) @fkiraly[DOC] forecasting
evaluate
utility - improved algorithm description in docstring #5603 (#5603) @adamkells[DOC] add explanation about fit/transform instance linking behaviour of rocket transformers (#5621) @fkiraly
[DOC] Adjust
FunctionTransformer
’s docstring (#5634) @tpvasconcelos[DOC] fixed typo in
pytest.mark.skipif
(#5640) @yarnabrina
Contributors#
@adamkells, @aeyazadil, @Alex-JG3, @benHeid, @ciaran-g, @fkiraly, @fspinna, @joanlenczuk, @NguyenChienFelix33, @onyekaugochukwu, @rahulporuri, @sbuse, @sd2k, @sssilvar, @tpvasconcelos, @Vasudeva-bit, @VyomkeshVyas, @wayneadams, @yarnabrina
Version 0.24.1 - 2023-11-05#
Highlights#
torch
adapter, LTSF forecasters - linear, D-linear, N-linear (#4891, #5514) @luca-miniatimore period options in
FourierFeatures
:pandas
period alias and from offset column (#5513) @Ram0nBiisignature
backend option forSignatureTransformer
(#5398) @sz85512678TimeSeriesForestClassifier
feature importance and optimized interval generation (#5338) @YHallouardall stationarity tests from
arch
package available as estimators (#5439) @Vasudeva-bitHyperbolic sine transformation and its inverse,
ScaledAsinhTransformer
, for soft input or output clipping (#5389) @ali-parizadestimator serialization: user choice of
serialization_format
insave
method andmlfow
plugin, support forcloudpickle
(#5486, #5526) @achieveordie
Dependency changes#
holidays
(transformations soft dependency) bounds have been updated to>=0.29,<0.36
.torch
is now a managed soft dependency for neural networks (dl
test set)
Core interface changes#
if using
scikit-base>=0.6.1
:set_params
now recognizes unique__
-separated suffixes as aliases for full parameter string, e.g.,set_params(foo="bar")
instead ofset_params(estimator__detrender__forecaster__supercalifragilistic__foo="bar")
. This extends to use of parameter names in tuners, e.g.,ForecastingGridSearchCV
grids, and estimators internally usingset_params
. The behaviour ofget_params
is unchanged.sktime
now supportscloudpickle
for estimator serialization, withpickle
being the standard serialization backend. To select the serialization backend, use theserialization_format
parameter of estimators’save
method.cloudpickle
is already a soft dependency, therefore no dependency change is required.
Enhancements#
BaseObject and base framework#
[ENH] test that
set_params
recognizes unique suffixes as aliases for full parameter string (#2931) @fkiraly[ENH] estimator serialization: user choice of
serialization_format
, support forcloudpickle
(#5486) @achieveordie
Benchmarking, Metrics, Splitters#
Data sets and data loaders#
[ENH] Add tecator dataset for time series regression as
sktime
onboard dataset (#5428) @JonathanBechtel
Forecasting#
[ENH]
LTSFLinearForecaster
,LTSFLinearNetwork
,BaseDeepNetworkPyTorch
(#4891) @luca-miniati[ENH]
LTSFDLinearForecaster
,LTSFNLinearForecaster
(#5514) @luca-miniati[ENH] parallel backend selection for forecasting tuners (#5430) @fkiraly
[ENH] in
NaiveForecaster
, add valid variance prediction for in-sample forecasts (#5499) @fkiraly
MLOps & Deployment#
[ENH] in
mlflow
plugin, improve informativity ofModuleNotFoundError
messages (#5487) @achieveordie[ENH] Add support for DL estimator persistence in
mlflow
plugin (#5526) @achieveordie
Neural networks#
[ENH]
pytorch
adapter for neural networks (#4891) @luca-miniati[ENH] add placeholder test suite for neural networks (#5511) @fkiraly
Parameter estimation and hypothesis testing#
[ENH] Interface to stationarity tests from
arch
package (#5439) @Vasudeva-bit
Time series annotation#
[ENH] Add unit tests for change point and segmentation plotting functions (#5509) @adamkells
Time series classification#
[ENH]
TimeSeriesForestClassifier
feature importance and optimized interval generation (#5338) @YHallouard
Transformations#
[ENH] Add Hyperbolic Sine transformation and its inverse (ScaledAsinhTransformer) (#5389) @ali-parizad
[ENH]
iisignature
backend option forSignatureTransformer
(#5398) @sz85512678[ENH] general inverse transform for
MSTL
transformer (#5457) @fkiraly[ENH] more period options in
FourierFeatures
:pandas
period alias and from offset column (#5513) @Ram0nB
Maintenance#
[MNT] Auto format pyproject (#5425) @yarnabrina
[MNT] bound
pycatch22<0.4.4
due to breaking change in patch version (#5434) @fkiraly[MNT] removed two recently added hooks (#5453) @yarnabrina
[MNT] xfail remote data loaders to silence sporadic failures (#5461) @fkiraly
[MNT] new CI workflow to test extras (#5375) @yarnabrina
[MNT] Split CI jobs per components with specific soft-dependencies (#5304) @yarnabrina
[MNT] fix typos in
base
module (#5313) @yarnabrina[MNT] fix typos in
forecasting
module (#5314) @yarnabrina[MNT] added missing checkout steps (#5471) @yarnabrina
[MNT] adds code quality checks without outdated/deprecated Github actions (#5427) @yarnabrina
[MNT] revert PR #4681 (#5508) @yarnabrina
[MNT] address
pandas
constructor deprecation message fromExpandingGreedySplitter
(#5500) @fkiraly[MNT] address deprecation of
pd.DataFrame.fillna
withmethod
arg (#5497) @fkiraly[MNT] Dataset downloader testing workflow (#5437) @yarnabrina
[MNT] shorter names for CI workflow elements (#5470) @fkiraly
[MNT] revert PR #4681 (#5508) @yarnabrina
[MNT] exclude downloads in “no soft dependencies” CI element (#5529) @fkiraly
[MNT] [Dependabot](deps): Bump actions/setup-node from 3 to 4 (#5483) @dependabot[bot]
[MNT] [Dependabot](deps-dev): Update pytest-timeout requirement from <2.2,>=2.1 to >=2.1,<2.3 (#5482) @dependabot[bot]
[MNT] [Dependabot](deps): Bump tj-actions/changed-files from 39 to 40 (#5492) @dependabot[bot]
[MNT] [Dependabot](deps-dev): Update holidays requirement from <0.35,>=0.29 to >=0.29,<0.36 (#5443) @dependabot[bot]
Documentation#
[DOC] fixing docstring example for
FhPlexForecaster
(#4931) @fkiraly[DOC] comments for readability of
pyproject.toml
(#5472) @fkiraly[DOC] streamlining API reference, fixing minor issues (#5466) @fkiraly
[DOC] Fix more typos (#5478) @szepeviktor
[DOC] update docstring of
STLTransformer
to correct statements on inverse and pipelines (#5455) @fkiraly[DOC] improved docstrings for
statsforecast
estimators (#5409) @fkiraly[DOC] add missing API reference entries for five deep learning classifiers (#5522) @fkiraly
[DOC] fixed docstrings for stationarity tests (#5531) @fkiraly
Fixes#
BaseObject and base framework#
Benchmarking, Metrics, Splitters#
Forecasting#
[BUG] Fix
pandas
FutureWarning
for silent upcasting (#5395) @tpvasconcelos[BUG] fix predict function of
make_reduction
(recursive, global) to work with tz aware data (#5464) @ciaran-g[BUG] in
TransformedTargetForecaster
, ensure correct setting ofignores-exogenous-X
tag if forecaster ignoresX
, but at least one transformer usesy=X
, e.g., feature selector (#5521) @fkiraly
Parameter estimation and hypothesis testing#
Time series annotation#
Time series classification#
Transformations#
Visualization#
Contributors#
@achieveordie, @adamkells, @Alex-JG3, @ali-parizad, @ciaran-g, @fkiraly, @JonathanBechtel, @kianmeng, @luca-miniati, @pseudomo, @Ram0nB, @sz85512678, @szepeviktor, @tpvasconcelos, @Vasudeva-bit, @yarnabrina, @YHallouard
Version 0.24.0 - 2023-10-13#
Maintenance release:
support for python 3.12
scheduled deprecations
soft dependency updates
For last non-maintenance content updates, see 0.23.1.
Dependency changes#
pykalman
dependencies have been replaced by the forkpykalman-bardo
.pykalman
is abandoned, andpykalman-bardo
is a maintained fork. This is a soft dependency, and the switch does not affect users installingsktime
using one of its dependency sets. Mid-term, we expectpykalman-bardo
to be merged back intopykalman
, after which the dependency will be switched back topykalman
.holidays
(transformations soft dependency) bounds have been updated to>=0.29,<0.35
.numba
(classification, regression, and transformations soft dependency) bounds have been updated to>=0.53,<0.59
.skpro
(forecasting soft dependency) bounds have been updated to>=2.0.0,<2.2.0
.
Deprecations and removals#
in forecasting tuners
ForecastingGridSearchCV
,ForecastingRandomizedSearchCV
,ForecastingSkoptSearchCV
, the default of parametertune_by_variable
has been switched fromTrue
toFalse
.
Contents#
[MNT] Update
numba
requirement from<0.58,>=0.53
to>=0.53,<0.59
(#5299, #5319) @dependabot[bot], @fkiraly[MNT] [Dependabot](deps-dev): Update
skpro
requirement from<2.1.0,>=2.0.0
to>=2.0.0,<2.2.0
(#5396) @dependabot[bot][MNT] [Dependabot](deps-dev): Update
holidays
requirement from<0.34,>=0.29
to>=0.29,<0.35
(#5342) @dependabot[bot][MNT] Migrate from
pykalman
topykalman-bardo
(#5277) @mbalatsko[MNT] 0.24.0 deprecations and change actions (#5404) @fkiraly
Contributors#
Version 0.23.1 - 2023-10-12#
Highlights#
all hierarchical/multivariate forecaster and transformer broadcasting can now use parallelization backends
joblib
,dask
viaset_config
(#5267, #5268, #5301, #5311, #5405) @fkiralyPeakTimeFeatures
transformer to generate indicator features for one or multiple peak hours, days, etc (#5191) @ali-parizadARCH forecaster interfacing
arch
package (#5326) @Vasudeva-bitforecasting reducer
YfromX
now makes probabilistic forecasts when usingskpro
probabilistic tabular regressors (#5271) @fkiralyforecasting compositors
ForecastX
now allows fittingforecaster_y
on forecastedX
(#5334) @benHeidlucky dynamic time warping distance and aligner, for use in time series classifiers, regressors, clusterers (#5341) @fkiraly
splitters have now moved to their own module,
sktime.split
(#5017) @BensHamza
Dependency changes#
attrs
is no longer a soft dependency (time series annotation) ofsktime
arch
is now a soft dependency (forecasting) ofsktime
skpro
is now a soft dependency (forecasting) ofsktime
Core interface changes#
BaseObject and base framework#
the
sktime
framework now inspects estimator type primarily via the tagobject_type
. This is not a breaking change as inheriting from respective base classes automatically sets the tag as well, via the tag inheritance system. The type inspection utilityscitype
is also unaffected. For extenders, the change enables polymorphic and dynamically typed estimators.warnings from
sktime
can now be silenced on a per-estimator basis via thewarnings
config that can be set viaset_config
(see docstring).
Forecasting#
hierarchical and multivariate forecasts can now use parallelization and distributed backends, including
joblib
anddask
, if the forecast is obtained via broadcasting. To enable parallelization, set thebackend:parallel
and/or thebackend:parallel:params
configuration flags viaset_config
(see docstring) before fitting the forecaster. This change instantaneously extends to all existing third party forecasters that are interface conformant, via inheritance from the updated base framework.
Time series regression#
time series regressors now allow single-column
pd.DataFrame
asy
. Current behaviour is unaffected, this is not a breaking change for existing code.
Transformations#
hierarchical and multivariate transformers can now use parallelization and distributed backends, including
joblib
anddask
, if the transformation is obtained via broadcasting. To enable parallelization, set thebackend:parallel
and/or thebackend:parallel:params
configuration flags viaset_config
(see docstring) before fitting the transformer. This change instantaneously extends to all existing third party transformers that are interface conformant, via inheritance from the updated base framework.
Deprecations and removals#
Benchmarking, Metrics, Splitters#
time series splitters, i.e., descendants of
BaseSplitter
, have moved fromsktime.forecasting.model_selection
tosktime.split
. The old locationmodel_selection
is deprecated and will be removed in 0.25.0. Until 0.25.0, it is still available but will raise an informative warning message.
Enhancements#
BaseObject and base framework#
[ENH] add exports of common utilities in
utils
module (#5266) @fkiraly[ENH] in scitype check, replace base class register logic with type tag inspection (#5288) @fkiraly
[ENH] parallelization backend calls in utility module - part 1, refactor to utility module (#5268) @fkiraly
[ENH] parallelization backend calls in utility module - part 2, backend parameter passing (#5311) @fkiraly
[ENH] parallelization backend calls in utility module - part 3, backend parameter passing in base class broadcasting (#5405) @fkiraly
Benchmarking, Metrics, Splitters#
[ENH] consolidating splitters as their own module with systematic tests and extension (#5017, #5331) @BensHamza, @fkiraly
[ENH] allow
evaluate
to accept any combination of multiple metrics with correct predict method (#5192) @hazrulakmal[ENH] add tests for
temporal_train_test_split
(#5332) @fkiraly
Data loaders#
[ENH] dataset loaders module restructure (#5239) @hazrulakmal
Forecasting#
[ENH] Add a
CurveFitForecaster
based onscipy
optimize_curve
(#5240) @benHeid[ENH] Restructure the
trend
forecasters module (#5242) @benHeid[ENH] Link
test_interval_wrappers.py
to changes inevaluate
for conditional testing (#5337) @fkiraly[ENH]
joblib
anddask
backends in broadcasting of estimators in multivariate or hierarchical case - part 1,VectorizedDF.vectorize_est
(#5267) @fkiraly[ENH]
joblib
anddask
backends in broadcasting of estimators in multivariate or hierarchical case - part 2, base class config (#5301) @fkiraly[ENH] ARCH model interfacing
arch
package (#5326) @Vasudeva-bit[ENH] in
ForecastX
, enable fittingforecaster_y
on forecastedX
(#5334) @benHeid[ENH] Skip unnecessary fit in
ForecastX
if innerforecaster_y
ignoresX
(#5353) @yarnabrina[ENH] remove legacy except in
TestAllEstimators
forpredict_proba
(#5386) @fkiraly
Time series alignment#
Time series distances and kernels#
Time series regression#
[ENH] in
BaseRegressor
, allowy
to be 1Dpd.DataFrame
(#5282) @mdsaad2305
Transformations#
[ENH]
PeakTimeFeatures
transformer to generate indicator features for one/multiple peak/hours-day-week-, working hours, etc (#5191) @ali-parizad[ENH]
VmdTransformer
, add decompose-forecast-recompose as a docstring example and test (#5250) @fkiraly`* [ENH] improve ``evaluate` failure error message (#5269) @fkiraly[ENH] add proper
inverse_transform
toSTLTransformer
(#5300) @fkiraly[ENH]
joblib
anddask
backends in broadcasting of estimators in multivariate or hierarchical case - part 1,VectorizedDF.vectorize_est
(#5267) @fkiraly[ENH]
joblib
anddask
backends in broadcasting of estimators in multivariate or hierarchical case - part 2, base class config (#5301) @fkiraly[ENH] Refactor of
DateTimeFeatures
tests topytest
fixtures (#5397) @adamkells
Testing framework#
Maintenance#
[MNT] revert update numba requirement from <0.58,>=0.53 to >=0.53,<0.59” (#5297) @fkiraly
[MNT] simplified CI - merge windows CI step with test matrix (#5362) @fkiraly
[MNT] towards 3.12 compatibility - replace
distutils
calls with equivalent functionality (#5376) @fkiraly[MNT] removed
py37.dockerfile
and update doc entry for CI (#5356) @kurayami07734[MNT] [Dependabot](deps): Bump styfle/cancel-workflow-action from 0.11.0 to 0.12.0 (#5355) @dependabot[bot]
[MNT] [Dependabot](deps): Bump stefanzweifel/git-auto-commit-action from 4 to 5 (#5373) @dependabot[bot]
[MNT] [Dependabot](deps-dev): Update holidays requirement from <0.33,>=0.29 to >=0.29,<0.34 (#5276) @dependabot[bot]
[MNT] [Dependabot](deps-dev): Update numpy requirement from <1.26,>=1.21.0 to >=1.21.0,<1.27 (#5275) @dependabot[bot]
[MNT] [Dependabot](deps-dev): Update arch requirement from <6.2.0,>=5.6.0 to >=5.6.0,<6.3.0 (#5392) @dependabot[bot]
Documentation#
[DOC] prevent line break in
README.md
badges table (#5263) @fkiraly[DOC] forecasting extension template - add insample capability tags (#5272) @fkiraly
[DOC] add
blog
badge forfkiraly
, for ODSC blog post (#5291) @fkiraly[DOC] speed improvement of
partition_based_clustering
notebook (#5278) @alexfilothodoros[DOC] Documented ax argument and the figure in plot_series (#5325) @ShreeshaM07
[DOC] Improve Readability of Notebook 2 - Classification, Regression & Clustering (#5312) @achieveordie
[DOC] Added all feature names to docstring for DateTimeFeatures class (#5283) @Abhay-Lejith
[DOC] Correct code block formatting for pre-commit install command (#5377) @alhridoy
[DOC] fix broken docstring example of
AlignerDtwNumba
(#5374) @fkiraly[DOC] fix typo in classification notebook (#5390) @pirnerjonas
[DOC] Improved PR template for new contributors (#5381) @fkiraly
[DOC] update docstring of
temporal_train_test_split
(#4170) @xansh[DOC] Document
ax
argument and the figure inplot_series
(#5325) @ShreeshaM07
Fixes#
Benchmarking, Metrics, Splitters#
Forecasting#
[BUG] fix
STLForecaster
tagignores-exogeneous-X
to be correctly set for composites (#5365) @yarnabrina[BUG]
statsforecast 1.6.0
compatibility - instatsforecast
adapter, fixingRuntimeError: dictionary changed size during iteration
(#5317) @arnaujc91[BUG]
statsforecast 1.6.0
compatibility - fix argument differences betweensktime
andstatsforecast
(#5393) @luca-miniati[BUG] Fix
ARCH._check_predict_proba
(#5384) @Vasudeva-bit
Time series alignment#
Time series distances and kernels#
[BUG] Fix
numba
errors when callingtslearn
lcss
(#5368) @benHeid, @BensHamza, @fkiraly
Transformations#
Visualization#
[BUG] Fix inconsistent date/time index in
plot_windows
#4919 (#5321) @geronimos
Contributors#
@Abhay-Lejith, @achieveordie, @adamkells, @Alex-JG3, @alexfilothodoros, @alhridoy, @ali-parizad, @arnaujc91, @benHeid, @BensHamza, @fkiraly, @geronimos, @hazrulakmal, @julnow, @kurayami07734, @luca-miniati, @mdsaad2305, @pirnerjonas, @ShreeshaM07, @Vasudeva-bit, @xansh, @yarnabrina
Version 0.23.0 - 2023-09-17#
Maintenance release - scheduled deprecations.
For last non-maintenance content updates, see 0.22.1.
Contents#
end of change period in column naming convention for univariate probabilistic forecasts, see below for details for users and developers
scheduled 0.23.0 deprecation actions
Deprecations and removals#
Forecasting - change of column naming for univariate probabilistic forecasts#
Returns of forecasters’ predict_quantiles
and predict_intervals
are now consistent between the univariate case and multivariate cases:
the name of the uppermost (0-indexed) column level is always the variable name.
Previously, in the univariate case, it was always Coverage
or Quantiles
.
This has been preceded by a change transition period since 0.21.0. See the 0.21.0 and 0.22.0 changelogs for further details.
Users and extenders who have not yet completed their downstream actions should remain on 0.22.X until they have completed their actions, and then upgrade to 0.23.0 or later.
Version 0.22.1 - 2023-09-17#
Highlights#
Graphical Pipelines for any learning task (polymorphic) -
Pipeline
(#4652) @benHeidall
tslearn
distances and kernels are now available insktime
(#5039) @fkiralynew transformer:
VmdTransformer
(variational mode decomposition) -vmdpy
is now maintained insktime
(#5129) @DaneLyttinen, @vrcarvanew transformer: interface to
statsmodels
MSTL (#5125) @luca-miniatinew classifier:
MrSEQL
time series classifier (#5178) @lnthach, @heerme, @fkiralynew
sktime
native probability distributions: Cauchy, empirical, Laplace, Student t (#5050, #5094, #5161) @Alex-JG3, @fkiraly
Dependency changes#
sktime
now supportspandas
2.1.Xsktime
now supportsholidays
0.32 (soft dependency)sktime
now supportsstatsforecast
1.6.X (soft dependency)
Core interface changes#
Transformations#
Transformations (
BaseTransformer
descendants) now have two new optional tags:"capability:inverse_transform:range"
and"capability:inverse_transform:exact"
. The tags should be specified in the_tags
class attribute of the transformer, in case the transformer implementsinverse_transform
and has the restrictions described below."capability:inverse_transform:range"
specifies the domain of invertibility of the transform, must be list [lower, upper] of float”. This is used for documentation and testing purposes."capability:inverse_transform:exact"
specifies whetherinverse_transform
is expected to be an exact inverse totransform
. This is used for documentation and testing purposes.
Enhancements#
BaseObject and base framework#
Benchmarking, Metrics, Splitters#
[ENH] Allow unrestricted ID string for
BaseBenchmarking
(#5130) @hazrulakmal
Data sets and data loaders#
Forecasting#
[ENH] Robustifying
ForecastingGridSearchCV
towards free kwarg methods in estimators, e.g., graphical pipeline (#5210) @benHeid[ENH] make
statsforecast
adapter compatible with optionalpredict
level
arguments, and different init param sets (#5112) @arnaujc91[ENH] fix
test_set_freq_hier
forpandas 2.1.0
(#5185) @fkiraly
Pipelines#
Probability distributions and simulators#
Time series classification#
Time series distances and kernels#
Transformations#
[ENH] Interface statsmodels MSTL - transformer (#5125) @luca-miniati
[ENH] VMD (variational mode decomposition) transformer based on
vmdpy
(#5129) @DaneLyttinen[ENH] add tag for inexact
inverse_transform
-s (#5166) @fkiraly
Testing framework#
[ENH] speed up
test_probabilistic_metrics
by explicit fixture generation instead of using forecaster fit/predict (#5115) @Ram0nB[ENH] test forecastingdata downloads only on a small random subset (#5146) @fkiraly
[ENH] widen scope of change-conditional test execution (#5100, #5135, #5147) @fkiraly
[ENH] differential testing of
cython
based estimators (#5206) @fkiraly
Maintenance#
[MNT] upgrade CI runners to latest stable images (#5031) @yarnabrina
[MNT] bound
statsforecast<1.6.0
due to recent failures (#5149) @fkiraly[MNT] test forecastingdata downloads only on a small random subset (#5146) @fkiraly
[MNT] lower dep bound compatibility patch -
binom_test
(#5152) @fkiraly[MNT] fix dependency isolation of
DateTimeFeatures
tests (#5154) @fkiraly[MNT] move fixtures in
test_reduce_global
topytest
fixtures (#5157) @fkiraly[MNT] move fixtures in
test_dropna
topytest
fixtures (#5153) @fkiraly[MNT] Extra dependency specifications per component (#5136) @yarnabrina
[MNT] autoupdate for copyright range in
sphinx
docs (#5212) @fkiraly[MNT] move
Pipeline
exception fromtest_all_estimators
to test_config
(#5251) @fkiraly[MNT] Update versions of pre commit hooks and fix
E721
issues pointed out byflake8
(#5163) @yarnabrina[MNT] [Dependabot](deps-dev): Update sphinx-gallery requirement from <0.14.0 to <0.15.0 (#5124) @dependabot[bot]
[MNT] [Dependabot](deps-dev): Update pandas requirement from <2.1.0,>=1.1.0 to >=1.1.0,<2.2.0 (#5183) @dependabot[bot]
[MNT] [Dependabot](deps): Bump actions/checkout from 3 to 4 (#5189) @dependabot[bot]
[MNT] [Dependabot](deps-dev): Update holidays requirement from <0.32,>=0.29 to >=0.29,<0.33 (#5214) @dependabot[bot]
[MNT] [Dependabot](deps-dev): Update statsforecast requirement from <1.6,>=0.5.2 to >=0.5.2,<1.7 (#5215) @dependabot[bot]
Documentation#
[DOC] provisions for treasurer role (#4798) @marrov, @kiraly
[DOC] Fix
make_pipeline
,make_reduction
,window_summarizer
&load_forecasting
data docstrings (#5065) @hazrulakmal[DOC] minor docstring typo fixes in
_DelegatedForecaster
module (#5168) @fkiraly[DOC] update forecasting extension template on
predict_proba
(#5138) @fkiraly[DOC] speed-up tutorial notebooks - deep learning classifiers (#5169) @alexfilothodoros
[DOC] Fix rendering issues in
ColumnEnsembleForecaster
docstring, addColumnEnsembleTransformer
example (#5201) @benHeid[DOC] installation instruction docs for learning task specific dependency sets (#5204) @fkiraly
[DOC] add allcontributors badges of benHeid (#5209) @benHeid
[DOC] Fixing typos in
installation.rst
(#5213) @Akash190104[DOC] Added examples for
temporal_train_test_split
docstring (#5216) @JonathanBechtel[DOC] update to README badges: license, tutorials, and community further up (#5227) @fkiraly
[DOC] Simple edits to make
STLForecaster
docstring render properly (#5220) @hazrulakmal
Fixes#
Benchmarking, Metrics, Splitters#
[BUG] in splitters, correctly infer series frequency for datetime datatype if not given (#5009) @hazrulakmal
[BUG] fix
BaseWindowSplitter
get_n_split
method for hierarchical data (#5012) @hazrulakmal
Forecasting#
[BUG] fix check causing exception in
ConformalIntervals
in_predict
(#5134) @fkiraly[BUG] ensure forecasting tuners do not vectorize over columns (variables) (#5145) @fkiraly, @SmirnGregHM
[BUG] Fix tag to indicate support of exogenous features by
NaiveForecaster
(#5162) @yarnabrina[BUG] Add missing
return
statement fory_dict
in tests for composite forecasters (#5253) @BensHamza[BUG] Fix missing
y_train
key iny_dict
in tests for composite forecasters (#5255) @fkiraly[BUG] Fix
ForecastKnownValues
failure onpd-multiindex
(#5256) @mattiasatqubes
Pipelines#
Time series annotation#
Transformations#
Visualisations#
Contributors#
@Akash190104, @Alex-JG3, @alexfilothodoros, @arnaujc91, @benHeid, @BensHamza, @DaneLyttinen, @fkiraly, @hazrulakmal, @heerme, @lnthach, @JonathanBechtel, @luca-miniati, @mattiasatqubes, @Ram0nB, @SmirnGregHM, @sniafas, @vrcarva, @yarnabrina
Version 0.22.0 - 2023-08-18#
Maintenance release - dependency updates, scheduled deprecations.
For last non-maintenance content updates, see 0.21.1.
Contents#
midpoint of change period in column naming convention for univariate probabilistic forecasts, in preparation for 0.23.0 - see below for details for users and developers
scheduled 0.22.0 deprecation actions
Dependency changes#
the
deprecated
has been removed as a core dependency ofsktime
. No action is required of users or developers, as the package was used only for internal deprecation actions.
Deprecations and removals#
Forecasting - change of column naming for univariate probabilistic forecasts#
From 0.23.0, returns of forecasters’ predict_quantiles
and predict_intervals
in the univariate case will be made consistent with the multivariate case:
the name of the uppermost (0-indexed) column level will always be the variable name.
Previously, in the univariate case, it was always Coverage
or Quantiles
.
The transition period is managed by the legacy_interface
argument of the two methods.
See the 0.21.0 changelog for further details.
In 0.22.0, the legacy_interface
argument defaults have been changed to False
,
which ensures outputs are of the future, post-change naming convention.
Reminder of recommended action for users:
Users should aim to upgrade dependent code to
legacy_interface=False
behaviour by 0.21.last, and to removelegacy_interface
arguments after 0.22.0 and before 0.23.0. Users who need more time to upgrade dependent code can setlegacy_interface=True
until 0.22.last.
Extenders should use the new "pred_int:legacy_interface:testcfg"
config field to upgrade their third party extensions,
this is as described in the 0.21.0 changelog.
Transformations#
in
DateTimeFeatures
, the featurehour_of_week
feature has been added to the"comprehensive"
feature set. Users who would like to continue using the previous feature set should use the argumentmanual_selection
instead.
List of PR#
Version 0.21.1 - 2023-08-16#
Highlights#
holiday feature transformers (country, financial holidays; 1:1 interface) based on
holidays
(#4893, #4909) @VyomkeshVyas, @yarnabrinaDropNA
transformer to drop rows or columns with nan (#5049) @hliebertExpandingGreedySplitter
for slicing test sets from end (#4917) @davidgilbertsonstatsforecast
interfaces: MSTL forecaster, ARCH family forecasters (#4865, #4938) @luca-miniati, @eyjofull rework of time series classification notebook (#5045) @fkiraly
improved developer experience - speedups for testing @julia-kraus, @tarpas, @benheid, @fkiraly, @yarnabrina
Core interface changes#
Time series alignment#
Time series aligners now accept all
Panel
mtypes as input, from onlydf-list
previously. This is not a breaking change.Time series aligners now have a tag
"alignment_type"
, which can have values"full"
and"partial"
, to distinguish between a full and partial alignment produced byget_alignment
. The tag can depend on parameters of the aligner.
Time series distances and kernels#
Pairwise transformers now have a tag
"pwtrafo_type"
, which can have values"kernel"
,"distance"
, or"other"
, to allow the user to inspect whether the transformer is a kernel or distance transformer. This does not impact the interface. The tag is mainly for search and retrieval by the user. This also allows to check against methodological requirements of estimators, e.g., support vector machines requiring a kernel. However, as stated, this is not enforced by the base interface.
Enhancements#
BaseObject and base framework#
Benchmarking, Metrics, Splitters#
[ENH] private
split_loc
and tag to control dispatch ofsplit_series
tosplit
vssplit_loc
(#4903) @fkiraly[ENH] applying forecasting metrics disregarding index - docstrings and tests (#4960) @fkiraly
[ENH] metrics classes - add testing parameters (#5097) @fkiraly
[ENH] tests and fixes for
numpy
weights in performance metrics (#5086) @fkiraly[ENH] input checks for
BaseBenchmark
, allowadd_estimator
to accept multiple estimators (#4877) @hazrulakmal[ENH] tests and fixes for
numpy
weights in performance metrics - probabilistic metrics (#5104) @fkiraly
Data sets and data loaders#
Forecasting#
[ENH] improvements to
_ColumnEstimator
- refactor to reduce coupling withBaseForecaster
(#4791) @fkiraly[ENH] rewrite
test_probabilistic_metrics
using properpytest
fixtures (#4946) @julia-kraus[ENH] add expanding greedy splitter (#4917) @davidgilbertson
[ENH] Interface
statsforecast
MSTL,statsforecast
back-adapter (#4865) @luca-miniati[ENH] contiguous
fh
option forFhPlexForecaster
(#4926) @fkiraly[ENH] ensure robustness of
StatsForecastBackAdapter
w.r.t. change ofpredict_interval
return format (#4991) @fkiraly[ENH] improve
SARIMAX
test parameter coverage (#4932) @janpipek[ENH] interface to
statsforecast
ARCH family estimators (#4938) @eyjo[ENH] add test cases for
Croston
andExponentialSmoothing
(#4935) @Gigi1111[ENH] applying forecasting metrics disregarding index - docstrings and tests (#4960) @fkiraly
[ENH] alias strings for
scoring
argument in forecasting tuners (#5058) @fkiraly[ENH] allow
YfromX
to take missing data (#5062) @eenticott-shell
Parameter estimators#
Probability distributions and simulators#
Time series alignment#
[ENH] edit distance alignment algorithms from
sktime
nativenumba
based aligners (#5075) @fkiraly[ENH] extend
BaseAligner.fit
with input conversion (#5077) @fkiraly[ENH] naive multiple aligners for baseline comparisons (#5076) @fkiraly
[ENH] tag for full/partial alignment, exact tests for full alignment output (#5080) @fkiraly
Time series classification#
Time series clustering#
Time series distances and kernels#
Transformations#
[ENH] inverse transform for
CosineTransformer
, tag handling for limited range of invertibility (#3671) @fkiraly[ENH] Holiday indicator transformers by country or market based on
holidays
package (#4893) @yarnabrina[ENH]
HolidayFeatures
transformer (#4909) @VyomkeshVyas[ENH] enable use of
TabularToSeriesAdaptor
with feature selectors, and passing ofy
(#4978) @fkiraly[ENH] speed up
BaseTransformer
checks and conversion boilerplate (#5036) @fkiraly[ENH]
DropNA
transformer to drop rows or columns with nan (#5049) @hliebert[ENH] option to remember data in
SplitterSummarizer
(#5070) @fkiraly
Testing framework#
[ENH] speed-up test collection by improvements to
_testing.scenarios
(#4901) @tarpas[ENH] test for more than one parameter sets per estimator (#2862) @fkiraly
[ENH] remove
sklearn
dependency intest_get_params
(#5011) @fkiraly[ENH] testing only estimators from modules that have changed compared to
main
(#5019) @fkiraly, @yarnabrina[ENH] dependency and diff test switch for individual estimators to decorate non-suite tests (#5084) @fkiraly
Maintenance#
[MNT] add
statsforecast
to thepandas2
compatible dependency set (#4878) @fkiraly[MNT] bound
dask<2023.7.1
to diagnose and remove bug #4925 frommain
(#4928) @fkiraly[MNT] [Dependabot](deps-dev): Update sphinx-design requirement from <0.5.0 to <0.6.0 (#4969) @dependabot[bot]
[MNT] speed up various tests in the forecasting module (#4963) @fkiraly
[MNT] speed up costly redundant
ElasticEnsemble
classifier doctest (#4981) @fkiraly[MNT] rename
TestedMockClass
toMockTestedClass
(#5005) @fkiraly[MNT] updated sphinx intersphinx links for other libraries (#5016) @yarnabrina
[MNT] fix duplication of
pytest
durations
parameter in CI (#5034) @fkiraly[MNT] speed up various non-suite tests, part 2 (#5071) @fkiraly
[MNT] add more soft dependencies to
show_versions
(#5059) @fkiraly
Documentation#
[DOC] minor improvements to the dependencies guide (#4896) @fkiraly
[DOC] remove outdated references from transformers API (#4895) @fkiraly
[DOC] Installation documentation: Pip install without soft dependencies for conda environments (#4936) @Verogli
[DOC] clarifications to different installations in install documentation (#4937) @julia-kraus
[DOC] correct docstring of
BaseForecaster.score
, reference to use of non-symmetric MAPE (#4948) @MBristle[DOC] remove duplication of troubleshooting ‘matches_not_found’ in install instructions (#4956) @julia-kraus
[DOC] Resolve broken link (governance) in README.md (#4942) @eyjo
[ENH] in doc build, add copy clipboard button for Example sections (#5015) (#5015) @yarnabrina
[DOC] improve description of
scoring
in docstrings of tuning forecasters such asForecastingGridSearchCV
(#5022) @fkiraly[DOC] API reference for time series aligners (#5074) @fkiraly
[DOC] improve formatting of docstring examples (#5078) @yarnabrina
[DOC] docstring example for
PinballLoss
(#5068) (#5068) @Ram0nB
Fixes#
BaseObject and base framework#
Benchmarking, Metrics, Splitters#
[BUG] use correct arguments in
geometric_mean_absolute_error
(#4987) @yarnabrina
Data types, checks, conversions#
Forecasting#
Parameter estimators#
Time series alignment#
Time series classification#
Time series clustering#
[BUG] add informative error messages for incompatible
scitype
inBaseClusterer
(#4958) @achieveordie
Transformations#
[BUG] fix
DataConversionWarning
inFeatureSelection
(#4883) @fkiraly[BUG] Fix forecaster based imputation strategy in
Imputer
if forecaster requiresfh
infit
(#4999) @MCRE-BE[BUG] Fix
Differencer.inverse_transform
on train data ifna_handling=fill_zero
(#4998) @benHeid, @MCRE-BE[BUG] fix wrong logic for
index_out="shift"
inLag
transformer (#5069) @fkiraly
Contributors#
@Abelarm, @achieveordie, @Alex-JG3, @benHeid, @davidgilbertson, @eenticott-shell, @eyjo, @fkiraly, @Gigi1111, @hazrulakmal, @hliebert, @janpipek, @julia-kraus, @luca-miniati, @MBristle, @MCRE-BE, @Ram0nB, @tarpas, @Verogli, @VyomkeshVyas, @yarnabrina
Version 0.21.0 - 2023-07-19#
Maintenance release - dependency updates, scheduled deprecations.
For last non-maintenance content updates, see 0.20.1.
Contents#
sktime
is now compatible withsklearn 1.3.X
start of change in column naming convention for univariate probabilistic forecasts, in preparation for 0.23.0 - see below for details for users and developers
scheduled 0.21.0 deprecation actions
Dependency changes#
scikit-learn
version bounds now allow versions1.3.X
the
deprecated
package is deprecated as a core dependency ofsktime
, and will cease to be a dependency from 0.22.0 onwards. No action is required of users or developers, as the package was used only for internal deprecation actions.pycatch22
has been added back as a soft dependency, after python 3.7 EOL
Deprecations and removals#
Forecasting - change of column naming for univariate probabilistic forecasts#
From 0.23.0, returns of forecasters’ predict_quantiles
and predict_intervals
in the univariate case will be made consistent with the multivariate case:
the name of the uppermost (0-indexed) column level will always be the variable name.
Previously, in the univariate case, it was always Coverage
or Quantiles
,
irrespective of the variable name present in y
, whereas in the multivariate case,
it was always the variable names present in y
.
The change will take place over two MINOR cycles, 0.21.X (early phase) and 0.22.X (late phase), the union of which makes up the change period. We explain the schedule below, for users, and then for maintainers of third party forecasters (“extenders”).
Users should use a new, temporary legacy_interface
argument to handle the change:
Users - change period. The two forecaster methods
predict_quantiles
andpredict_intervals
will have a new boolean argument,legacy_interface
. IfTrue
, the methods produce returns with the current naming convention. IfFalse
, the methods produce returns with the future, post-change naming convention.Users - early and late phase. In the early phase (0.21.X), the default value of
legacy_interface
will beTrue
. In the late phase (0.22.X), the default value oflegacy_interface
will beFalse
. This change of default will occur in 0.22.0, and may be breaking for users who do not specify the argument.Users - post-deprecation. In 0.23.0, the
legacy_interface
argument will be removed. The methods will always produce returns with the future, post-change naming convention. This change may be breaking for users who do not remove the argument by 0.23.0.Appropriate deprecation warnings will be raised from 0.21.0 onwards, until 0.22.last.
Users - recommended change actions. Users should aim to upgrade dependent code to
legacy_interface=False
behaviour by 0.21.last, and to removelegacy_interface
arguments after 0.22.0 and before 0.23.0. Users who need more time to upgrade dependent code can setlegacy_interface=True
until 0.22.last.
Extenders should use the new "pred_int:legacy_interface:testcfg"
config field to upgrade their third party extensions:
Extenders - change period. The config field
"pred_int:legacy_interface:testcfg"
has been added to all descendants of theBaseForecaster
class. This config controls the contract that thecheck_estimator
andpytest
tests check against, and can be set byset_config
.The default value of the tag is
"auto"
- this means that the tests will check against the current naming convention in the early phase (0.21.X), and against the future naming convention in the late phase (0.22.X), for_predict_quantiles
or_predict_intervals
having the standard signature, withoutlegacy_interface
. From 0.23.0 on, the tag will have no effect.In the change period: if the tag is set to
"new"
, the tests will always check against the new interface; if the tag is set to"old"
, the tests will check against the old interface, irrespective of the phase. From 0.23.0, the setting will have no effect and the tests will always check against the new interface.Extenders - recommended change actions: Extenders should aim to upgrade their third party extensions to
"pred_int:legacy_interface:testcfg=new"
behaviour by 0.21.last. Tests against late stage and post-deprecation behaviour can be enforced by settingforecaster.set_config({"pred_int:legacy_interface:testcfg": "new"})
, before passing it tocheck_estimator
. Theset_config
call can be removed after 0.22.0, and should be removed before 0.23.0, but will not be breaking if not removed.Extenders with a substantial user base of their own can, alternatively, implement and release
_predict_quantiles
and_predict_intervals
with alegacy_interface
argument before 0.22.0, the default of which should beFalse
from the beginning on (even in early phase). In this case, the"pred_int:legacy_interface:testcfg"
tag should be set to"auto"
, and the tests will check both new and old behaviour. Thelegacy_interface
argument can be removed after 0.23.0. This will result in the same transition experience for users of the extenders’ forecasters as for users ofsktime
proper.
List of PR#
[ENH] replace
"Coverage"
and"Quantiles"
default variable name in univariate case with variable name (#4880) @fkiraly, @benheid[BUG] 0.21.0 release bugfix - fix interaction of
sklearn 1.3.0
with dynamic error metic based onpartial
intest_make_scorer
(#4915) @fkiraly[MNT] xfail
mlflow
failure #4904 until debugged, gitignore forpy-spy
(#4913) @fkiraly[DOC] 0.21.0 release action - update deprecation guide to reflect deprecation of use of deprecated (#4914) @fkiraly
[MNT] 0.21.0 release action - update
sklearn
bound to<1.4.0
(#4778) @fkiraly[MNT] 0.21.0 release action - add back
pycatch22
as a soft dependency post python 3.7 EOL (#4790) @fkiraly
Version 0.20.1 - 2023-07-14#
Highlights#
data loader for Monash Forecasting Repository (#4826) @hazrulakmal
estimator crafter = string serialization/deserialization for all object/estimator blueprint specifications (#4738) @fkiraly
SkoptForecastingCV
- hyperparameter tuning for forecasters usingscikit-optimize
(#4580) @hazrulakmalnew forecaster -
statsmodels
AutoReg
interface (#4774) @CTFallon, @mgazian000, @JonathanBechtelnew forecaster - by-horizon
FhPlexForecaster
, for different estimator/parameter per horizon (#4811) @fkiralynew transformer -
SplitterSummarizer
to apply transformer by fold (#4759) @BensHamzaColumnEnsembleTransformer
-remainder
argument (#4789) @fkiralynew classifier and regressor - MCDCNN estimators migrated from
sktime-dl
(#4637) @achieveordie
Core interface changes#
BaseObject#
object blueprint (specification) serialization/deserialization to string has been added. “blueprints” in this sense are object composites at init state, e.g., a pristine forecasting pipeline. All objects serialize by
str
coercion, e.g.,str(my_pipeline)
, and deserialize viasktime.registry.craft : str -> object
. The deserializercraft
is a pseudo-inverse of the serializerstr
for a fixed python environment, so can be used for fully reproducible specification storage and sharing, e.g., in reproducible science or performance benchmarking.further utilities
registry.deps
andregistry.imports
complement the serialization toolbox. In an environment with only core dependencies ofsktime
, the utilitydeps : str -> list[str]
produces a list of PEP 440 soft dependency specifiers required to craft the serialized object (e.g., a forecasting pipeline) which can be used to set up a python environment install before crafting. The utilityimports : str -> str
produces a code block of all python compilable imports required to craft the serialized object.the tag
python_dependencies_alias
was added to manage estimator specific dependencies where the package name differs from the import name. See the estimator developer guide for further details.
Transformations#
the transformations base interface, i.e., estimators inheriting From
BaseTransformer
, now allowX=None
intransform
without raising an exception. Individual transformers may now implement their own logic to deal withX=None
.
Enhancements#
BaseObject#
[ENH] estimator crafter aka deserialization of estimator spec from string (#4738) @fkiraly
[ENH]
_HeterogenousMetaEstimator
to accept list of tuples of any length (#4793) @fkiraly[ENH] Improve handling of dependencies with alias (#4832) @hazrulakmal
[ENH] Add an explicit context manager during estimator dump (#4859) @achieveordie, @yarnabrina
Benchmarking and Metrics#
Data loaders#
[ENH] data loader for Monash Forecasting Repository (#4826) @hazrulakmal
Forecasting#
[ENH] refactoring of
ForecastingHorizon
to useIndex
basedcutoff
in private methods (#4463) @fkiraly[ENH]
SkoptForecastingCV
- hyperparameter tuning usingscikit-optimize
(#4580) @hazrulakmal[ENH] add more contract tests for
predict_interval
,predict_quantiles
(#4763) @yarnabrina[ENH]
statsmodels
AutoReg
interface (#4774) @CTFallon, @mgazian000, @JonathanBechtel[ENH] remove private defaults in forecasting module (#4810) @fkiraly
[ENH] by-horizon forecaster, for different estimator/parameter per horizon (#4811) @fkiraly
[ENH] splitter that replicates
loc
of another splitter (#4851) @fkiraly[ENH] set
ForecastX
missing data handling tag toTrue
to properly cope with future unknown variables (#4876) @fkiraly
Time series classification#
[ENH] ensure
BaggingClassifier
can be used as univariate-to-multivariate compositor (#4788) @fkiraly[ENH] migrate MCDCNN classifier, regressor, network from
sktime-dl
(#4637) @achieveordie[ENH] in
CNNNetwork
, add options to controlpadding
andfilter_size
logic (#4784) @alan191006
Time series regression#
[ENH] migrate MCDCNN classifier, regressor, network from
sktime-dl
(#4637) @achieveordie
Transformations#
[ENH] allow
X=None
inBaseTransformer.transform
(#4112) @fkiraly[ENH] Add
hour_of_week
option toDateTimeFeatures
transformer (#4724) @VyomkeshVyas[ENH]
ColumnEnsembleTransformer
-remainder
argument (#4789) @fkiraly[ENH]
SplitterSummarizer
transformer to apply transformer by fold (#4759) @BensHamza
Visualisations#
Maintenance#
[MNT] Temporarily skip all DL Estimators (#4760) @achieveordie
[MNT] address deprecation of
sklearn
if_delegate_has_method
in 1.3 (#4764) @fkiraly[MNT] bound
tslearn<0.6.0
due to bad dependency handling and massive imports (#4819) @fkiraly[MNT] ensure CI for python 3.8-3.10 runs on
pandas 2
(#4795) @fkiraly[MNT] also restrict
tslearn
on thepandas 2
testing dependency set (#4825) @fkiraly[MNT] skip failing
test_transform_and_smooth_fp
onmain
(#4836) @fkiraly[MNT] unpin
sphinx
and plugins, with defensive upper bounds (#4823) @fkiraly[MNT] Dependabot Setup (#4852) @yarnabrina
[MNT] update readthedocs env to python 3.11 and ubuntu 22.04 (#4821) @fkiraly
[MNT] [Dependabot](deps): Bump actions/download-artifact from 2 to 3 (#4854) @dependabot[bot]
[MNT] [Dependabot](deps): Bump styfle/cancel-workflow-action from 0.9.1 to 0.11.0 (#4855) @dependabot[bot]
[MNT] [Dependabot](deps): Bump actions/upload-artifact from 2 to 3 (#4856) @dependabot[bot]
[MNT] fix remaining
sklearn 1.3.0
compatibility issues (#4860) @fkiraly, @hazrulakmal[MNT] remove forgotten
deprecated
import from 0.13.0 (#4824) @fkiraly[MNT] Extend softdep error message tests support for packages with version specifier and alias (#4867) @hazrulakmal, @fkiraly
Documentation#
[DOC] Update Get Started docs, add regression vignette (#4216) @GargiChakraverty-yb
[DOC] adds a banner for non-latest branches in read-the-docs (#4681) @yarnabrina
[DOC] greatly simplified forecaster and transformer extension templates (#4729) @fkiraly
[DOC] Added examples to docstrings for K-Means and K-Medoids (#4736) @CTFallon
[DOC] Improvements to formulations in the README (#4757) @mswat5
[DOC] testing guide: add ellipsis flag to doctest command (#4768) @mdsaad2305
[DOC] Examples added to docstrings for Time Series Forest Regressor and Dummy Regressor (#4775) @mgazian000
[DOC] update date/year in LICENSE and readthedocs license constant (#4816) @fkiraly, @yarnabrina
[DOC] sort slightly disordered forecasting API reference (#4815) @fkiraly
[DOC] fix
ColumnSelect
typos in documentation (#4800) @fkiraly[DOC] minor improvements to forecasting and transformer extension templates (#4828) @fkiraly
Fixes#
Benchmarking and Metrics#
Forecasting#
[BUG] Add temporary fix to
_BaseWindowForecaster
to handle simultaneous in and out-of-sample forecasts (#4812) @felipeangelimvieira[BUG] fix for
make_reduction
with unequal panels time index forglobal
pooling (#4644) @kbpk[BUG] allows probabilistic predictions in
DynamicFactor
in presence of exogenous variables by (#4758) @yarnabrina[BUG] Fix
predict_residuals
internal data type conversion (#4772) @fkiraly, @benHeid
Transformations#
Testing framework#
Contributors#
@achieveordie, @alan191006, @benHeid, @BensHamza, @CTFallon, @felipeangelimvieira, @fkiraly, @GargiChakraverty-yb, @hazrulakmal, @JonathanBechtel, @kbpk, @mdsaad2305, @mgazian000, @mswat5, @VyomkeshVyas, @yarnabrina
Version 0.20.0 - 2023-06-21#
Maintenance release - python 3.7 end-of-life maintenance update, scheduled deprecations.
For last non-maintenance content updates, see 0.19.2 and 0.19.1.
Contents#
python 3.7 is no longer supported by
sktime
, as python 3.7 end-of-life is imminent (June 27), withsktime
dependencies already having dropped support.pre-commit and coding style upgrades (3.8 plus)
scheduled 0.20.0 deprecation actions
Dependency changes#
numpy
version bounds now allow versions1.25.X
Deprecations and removals#
Python 3.7 end-of-life#
sktime
no longer supports python 3.7 with sktime
0.20.0 and later.
python reaches end-of-life on Jun 27, 2023, and core dependencies of sktime
have already dropped support for python 3.7 with their most recent versions
(e.g., scikit-learn
).
Time Series Classification#
ComposableTimeSeriesClassifier
and WeightedEnsembleClassifier
have finished their move to classification.ensemble
, they are no longer
importable in their original locations.
List of PR#
[MNT] 0.20.0 release action - remove python 3.7 support (#4717) @fkiraly
[MNT] 0.20.0 release action - increase
scikit-base
bound to<0.6.0
(#4735) @fkiraly[MNT] 0.20.0 release action - support for
numpy 1.25
(#4720) @jorenham[MNT] 0.20.0 release action - remove initial utf comments in all python modules which are unnecessary in python 3 (#4725) @yarnabrina
[MNT] 0.20.0 release action - upgrade to coding style of python 3.8 and above using
pyupgrade
(#4726) @yarnabrina
Contributors#
Version 0.19.2 - 2023-06-19#
Highlights#
statsforecast
AutoETS
andAutoCES
interfaces (#4648, #4649) @yarnabrinadeveloper guide on remote setup of test suite (#4689) @fkiraly
update to all pre-commit hook versions, corresponding changes throughout the code base (#4680) @yarnabrina
Core interface changes#
ForecastingHorizon
and forecasters’fit
,predict
now supportrange
as input. Caveat:range(n)
starts at0
and ends atn-1
. For ann
-step-ahead forecast, including alln
integer steps in the horizon, passrange(1, n+1)
.
Enhancements#
Forecasting#
[ENH]
statsforecast
AutoETS
direct interface estimator (#4648) @yarnabrina[ENH]
statsforecast
AutoCES
direct interface estimator (#4649) @yarnabrina[ENH] improved
BaseForecaster
exception messages, with reference toself
class name (#4699) @fkiraly[ENH] support passing horizons as
range
object inForecastingHorizon
and infit
andpredict
methods (#4716) @yarnabrina
Time series classification#
[ENH] migrate
ResNetRegressor
fromsktime-dl
(#4638) @achieveordie
Documentation#
Maintenance#
[MNT] resolve pre-commit issues on
main
(#4673) @yarnabrina[MNT] except some DL and
numba
based estimators from tests to prevent memory overload (#4682) @fkiraly[MNT] remove private imports from
sklearn
-set_random_state
(#4672) @fkiraly[MNT] update pre-commit hook versions and corresponding changes (#4680) @yarnabrina
[MNT] add
skbase
to default package version display ofshow_versions
(#4694) @fkiraly
Fixes#
BaseObject#
[BUG] fix
clone
/set_params
with nestedsklearn
objects (#4707) @fkiraly, @hazrulakmal
Benchmarking#
[BUG] bugfix for
no-update_params
strategy inevaluate
(#4686) @hazrulakmal
Data sets and data loaders#
Data types, checks, conversions#
Forecasting#
Contributors#
@achieveordie, @fkiraly, @hazrulakmal, @hoesler, @mdsaad2305, @yarnabrina
Version 0.19.1 - 2023-05-30#
Maintenance release - scheduled pandas
dependency updates, scheduled deprecations.
For last non-maintenance content update, see 0.18.1.
Contents#
pandas 2
is now fully supported. Allsktime
native functionality remains compatible withpandas 1
,>=1.1.0
.scheduled deprecation of
tensorflow
based probability interface.
Dependency changes#
pandas
version bounds now allow versions2.0.X
in addition to currently supportedpandas 1
versions. This concludes the interim period for experimental support and begins full support forpandas 2
, with aim to support anypandas 2
version.tensorflow-probability
is no longer a dependency or soft dependency, it has also been removed from all dependency sets (includingdl
)
Deprecations and removals#
Python 3.7 end-of-life#
Python 3.7 reaches end-of-life on Jun 27, 2023, and core dependencies of sktime
have already dropped support for python 3.7 with their most recent versions
(e.g., scikit-learn
).
sktime
will drop support for python 3.7 with 0.20.0, or the first minor release
after Jun 27, 2023, whichever is later.
Dependencies#
tensorflow-probability
is no longer a dependency or soft dependency, it has also been removed from all dependency sets (includingdl
)
Forecasting#
The
legacy_interface
argument has been removed from forecasters’predict_proba
. The method now always returns aBaseDistribution
object, in line with prior default behaviour, i.e.,legacy_interface=False
.
List of PR#
Version 0.19.0#
Skipped for maintenance purposes, should not be used. (yanked from pypi)
Version 0.18.1 - 2023-05-22#
Highlights#
sktime
now has a generic adapter class tostatsforecast
(#4539, #4629) @yarnabrinastatsforecast
AutoTheta
was added with direct interface using this, more to follow (#4539) @yarnabrinathe time series alignment module has been updated: extension template for aligners (#4613),
numba
based alignment paths are availableassktime
aligners (#4620) @fkiralythe forecasting benchmarking framework now allows to pass multiple metrics (#4586) @hazrulakmal
new time series classifiers: bagging, MACNN, RNN (#4185, #4533, #4636) @ArushikaBansal, @fkiraly, @achieveordie
Core interface changes#
Probability distributions#
specification of default sample sizes for Monte Carlo approximations now use the
scikit-base
config systema
quantile
method was added, which returns a table of quantiles in the same format asBaseForecaster.predict_quantiles
return quantile forecastsa
ppf
method was added for returning quantiles
Enhancements#
Benchmarking#
[ENH] Clearer error message on fitting fail of
evaluate
(#4545) @fkiraly[ENH] Extend forecasting benchmarking framework to multiple metrics, add test coverage (#4586) @hazrulakmal
Forecasting#
[ENH]
statsforecast
AutoTheta
direct interface estimator (#4539) @yarnabrina[ENH] remove warning for length 1 forecasting pipelines (#4546) @fkiraly
[ENH] simple tabular prediction reduction for forecasting (#4564) @fkiraly
[ENH] rewrite of
_StatsForecastAdapter
in a generic way to support other models thanAutoARIMA
(#4629) @yarnabrina
Probability distributions#
Time series alignment#
Time series classification#
[ENH] SimpleRNN DL time series regressor, migrated from
sktime-dl
(#4185) @ArushikaBansal[ENH] move classification ensembles to
classification.ensembles
(#4532) @fkiraly[ENH] better documentation and test coverage for custom estimators and parameters in
DrCIF
(#4621) @Taise228[ENH] Add MACNN classifier and network (#4636) @achieveordie
Time series distances and kernels#
Transformations#
Testing framework#
Maintenance#
[MNT] add silent dependencies to core dependency set (#4551) @fkiraly
[MNT] bound
tensorflow-probability
to<0.20.0
(#4567) @fkiraly[MNT] changing
Union[int | float]
to float as per issue #4379 (#4575) @mdsaad2305[MNT] remove remaining soft dependency related module import warnings (#4554) @fkiraly
[MNT] remove remaining soft dependency related module import warnings (#4554) @fkiraly
[MNT] temporary bound
holidays
to avoid error inProphet
, later reverted (#4594, #4600) @fkiraly, @yarnabrina[MNT] remove
tsfresh
python version bounds from estimators (#4573) @fkiraly[MNT] excepting
FCNClassifier
from CI to prevent memouts until bugfix (#4616) @fkiraly[MNT] address
kulsinski
deprecation inscipy
(#4618) @fkiraly[MNT] remove forgotten
legacy_interface
reference fromcheck_is_scitype
docstring (#4630) @fkiraly
Documentation#
[DOC] improved docstrings in distances/kernels module (#4526) @fkiraly
[DOC] adds sktime internship link on the docs page (#4559) @fkiraly
[DOC] Improve Docstring for MAPE Metrics (#4563) @hazrulakmal
[DOC] additional glossary terms (#4556) @sanjayk0508
[DOC] fix warnings in make sphinx - language (
conf.py
) anddists_kernels.rst
wrong imports (#4593) @mdsaad2305[DOC] change
sktime
logos to vector graphicsvg
(#4606) @fkiraly[DOC] Remove white fill from
svg
andpng
sktime
logos (#4607) @fkiraly[DOC]
AutoETS
docstring - clarify conditional ignore of parameters dependent onauto
(#4597) @luca-miniati[DOC] correcting module path in
dists_kernels.rst
(#4625) @mdsaad2305[DOC] docstring for
SimpleRNNClassifier
(#4572) @wasup-yash[DOC] add examples for loading data from common tabular csv formats (#4612) @TonyZhangkz
[DOC] extension template for sequence aligners (#4613) @fkiraly
[DOC] fix minor issues in coding standards guide (#4619) @fkiraly
[DOC] remove forgotten
legacy_interface
reference fromcheck_is_scitype
docstring (#4630) @fkiraly[DOC] adding doctest guide to the testing documentation (#4634) @mdsaad2305
Fixes#
BaseObject, BaseEstimator#
Forecasting#
[BUG] corrected default logic for
_predict_interval
in case_predict_quantiles
is not implemented but_predict_proba
is (#4529) @fkiraly[BUG]
RecursiveReductionForecaster
pandas 2 fix (#4568) @fkiraly[BUG] in
_StatsModelsAdapter
, avoid passingexog
toget_prediction
ofstatsmodels
in_predict_interval
if parameter is not supported (#4589) @yarnabrina[BUG] fix incorrect sorting of
n_best_forecasters_
inBaseGridCV
if metric’slower_is_better
isFalse
(#4590) @hazrulakmal
Probability distributions#
Time series distances and kernels#
Time series classification#
[BUG] fix broken RNN classifier (#4531) @achieveordie
[BUG] fix bug from clash between
ABC
inheritance and RNNfit
override (#4527) @achieveordie @fkiraly
Time series regression#
[BUG] fix broken RNN regressor (#4531) @achieveordie
[BUG] fix bug from clash between
ABC
inheritance and RNNfit
override (#4527) @achieveordie @fkiraly
Transformations#
Contributors#
@achieveordie, @antonioramos1, @ArushikaBansal, @fkiraly, @hazrulakmal, @kbpk, @luca-miniati, @marrov, @mdsaad2305, @panozzaj, @sanjayk0508, @Taise228, @TonyZhangkz, @wasup-yash, @yarnabrina
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. Allnumba
based estimators continue working unchanged, but require explicitnumba
installation.the base module of
sktime
has been factored out toscikit-base
, the abstract base layer forscikit-learn
like packages maintained bysktime
pandas 2
support continues in testing/experimental period until 0.18.last. Allsktime
native functionality ispandas 2
compatible, the transition period allows testing of deployments and custom extensions. See instructions below for upgrading dependent code topandas 2
, or remaining onpandas 1
.scheduled deprecation of
tensorflow
based probability interface andVectorizedDF
methods.
Dependency changes#
numba
is no longer a core dependency, it has changed to soft dependencyscikit-base
is a new core dependency
Deprecations and removals#
Dependencies#
numba
has changed from core dependency to soft dependency insktime 0.18.0
. To ensure functioning of setups ofsktime
code dependent onnumba
based estimators going forward, ensure to installnumba
in the environment explicitly, or install theall_extras
soft dependency set which will continue to containnumba
. Besides this,numba
dependent estimators will function identically as before.sktime
’s base module has moved to a new core dependency,scikit-base
, fromsktime 0.18.0
. This will not impact functionality or imports directly fromsktime
, or any usage.tensorflow-probability
will cease to be a soft dependency from 0.19.0, as the only dependency locus (forecasters’ oldpredict_proba
return type) is being deprecated.
Data types, checks, conversions#
VectorizedDF.get_iloc_indexer
was removed. Developers and users should useiter
,__iter__
, orget_iter_indices
instead.
Forecasting#
forecasters’
predict_proba
now by default returns aBaseDistribution
. The oldtensorflow-probability
based return from pre-0.17.0 can still be obtained by setting the argumentlegacy_interface=False
inpredict_proba
. This is useful for handling deprecation.from 0.19.0, the
legacy_interface
argument will be removed frompredict_proba
, together with the option to returntensorflow-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 ofpandas<2.0.0
sktime
will aim to be compatible withpandas 2.0.X
as well aspandas 1, >=1.1.0
,sktime
can be run and tested withpandas 2.0.X
by force-installingpandas 2.0.X
estimators can be tested for
pandas 2
compatibility viacheck_estimator
under force-installedpandas 2.0.X
reports on compatibility issues are appreciated in #4426 (direct input or link from)
in the full support period (0.19.0-onwards):
sktime
requirements will allowpandas 2.0.X
and extend support withpandas
releasessktime
will aim to be compatible withpandas 2
(any version), as well aspandas 1, >=1.1.0
users choose their preferred
pandas
version by requirements on their downstream environmentthe bug and issue trackers should be used as normal
List of PR#
[MNT] 0.18.0 change action -
numba
as soft dependency (#3843) @fkiraly[MNT] ensure
predict_proba
calls inmlflow
forecasting interface explicitly calllegacy_interface
(#4514) @fkiraly[MNT]
skbase
refactor - part 1:BaseObject
and package dependencies (#3151) @fkiraly[MNT]
skbase
refactor - part 2:all_estimators
lookup (#3777) @fkiraly[ENH]
quantile
method for distributions, default implementation of forecasterpredict_quantiles
ifpredict_proba
is present (#4513) @fkiraly[ENH] add test for
all_estimators
tag filter (#4512) @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 (#4381) @dashapetrprobabilistic prediction functionality for
SARIMAX
(#4439) @yarnabrinaInceptionTime
classifier fromsktime-dl
migrated (#3003) @tobiasweedeSplitterBootstrapTransformer
for booststrapping based on any splitter (#4455) @fkiralyIxToX
transformer that creates features from time index or hierarchy label (#4416) @fkiralymany bugfixes to probabilistic forecasting interfaces -
BaggingForecaster
,BATS
,TBATS
,DynamicFactor
,VECM
Core interface changes#
Forecasting#
all forecasters (
Baseforecaster
descendants) now have the following new tags:capability:insample
, boolean, indicating whether the classifier can make in-sample forecasts.capability:pred_int:insample
, boolean, indicating whether the classifier can make probabilistic in-sample forecasts, e.g., prediction intervals in-sample.
all forecasters are now tested for interface conformance for interval forecasts, in-sample (based on the above tags) and out-of-sample, via
check_estimator
Time series classification#
all time series classifiers (
BaseClassifier
descendants) now have a tagcapability:predict_proba
. This indicates whether the classifier implements a non-default (non-delta-mass) probabilistic classification functionality.
Enhancements#
Data types, checks, conversions#
Forecasting#
[ENH] Adds
_predict_interval
toSARIMAX
to supportpredict_interval
andpredict_quantiles
(#4439) @yarnabrina[ENH] shift
ForecastingHorizon
-BaseForecaster
cutoff
interface to rely on public point (#4456) @fkiraly[ENH] testing in-sample forecasting - replace try/except in
test_predict_time_index
by tag and tag dependent contract (#4476) @fkiraly[ENH] remove monotonicity requirement from quantile prediction contract (#4480) @fkiraly
[ENH] remove superfluous implementation checks in
_predict_interval
and_predict_quantiles
ofBaseForecaster
(#4481) @yarnabrina[ENH] testing all forecasters
predict_quantiles
,predict_interval
in-sample (#4470) @fkiraly[ENH] performant re-implementation of
NaiveForecaster
-"last"
strategy (#4461) @fkiraly[ENH] adds
_predict_interval
in_StatsModelsAdapter
and inherits in other estimator to reduce code duplication (#4465) @yarnabrina[ENH] in
ForecastingHorizon
, refactorto_absolute().to_pandas()
calls to a method (#4464) @fkiraly
Time series classification#
[ENH]
predict_proba
capability tag for classifiers (#4012) @fkiraly[ENH] migrate
InceptionTime
classifier and example (fromsktime-dl
) (#3003) @tobiasweede
Time series regression#
Transformations#
Testing framework#
Maintenance#
[MNT] Changed line endings of
ElectricDevices.csv
andGunPoint.csv
fromCRLF
toLF
(#4452) @yarnabrina[MNT] ensure all elements in test matrix complete runs (#4472) @fkiraly
[MNT] add
InceptionTimeClassifier
andLSTMFCNClassifier
as direct module export (#4484) @fkiraly[MNT] address some warnings and deprecation messages from dependencies (#4486) @fkiraly
Documentation#
[DOC] Fix error in
MiniRocket
example code - wrong transformer (#4497) @doncarlos999[DOC] add
InceptionTimeClassifier
andLSTMFCNClassifier
to API docs (#4484) @fkiraly[DOC] fix typo in cython interface reference,
MySQM
->MrSQM
(#4493) @fkiraly[DOC] move content from pydata global 2022 (transformers, pipelines tutorial) to sktime main repo (#4381) @dashapetr
[DOC] improvements to description of
sktime
on the readthedocs landing page (#4444) @howdy07
Fixes#
Forecasting#
[BUG] fix
pandas
write error in probabilistic forecasts ofBaggingForecaster
(#4478) @fkiraly[BUG] fix
predict_quantiles
in_PmdArimaAdapter
and_StatsForecastAdapter
post 0.17.1 (#4469) @fkiraly[BUG]
ForecastingHorizon
constructor - override erroneously inferredfreq
attribute from regularDatetimeIndex
based horizon (#4466) @fkiraly, @yarnabrina[BUG] fix broken
DynamicFactor._predict_interval
(#4479) @fkiraly[BUG] fix
pmdarima
interfaces breaking forX
containing more indices than forecasting horizon (#3667) @fkiraly, @SzymonStolarski[BUG] fix
BATS
andTBATS
_predict_interval
interface (#4492, #4505) @fkiraly`[BUG] fix
VECM._predict_interval
interface for date-like indices (#4506) @fkiraly
Testing framework#
Contributors#
@dashapetr, @doncarlos999, @fkiraly, @howdy07, @marrov, @SzymonStolarski, @tobiasweede, @yarnabrina
Version 0.17.1 - 2023-04-10#
Maintenance patch (pandas 2
, attrs
). For last content update, see 0.17.0.
pandas 2
compatibility patchexperimental support for
pandas 2
with testing and upgrade instructions for userssktime
will continue to supportpandas 1
versions
User feedback and pandas 2
compatibility issues are appreciated in #4426.
Dependency changes#
the version bound
pandas<2.0.0
will be relaxed topandas<2.1.0
insktime 0.19.0
option 1: to keep using
pandas 1.X
from0.19.0
onwards, simply introduce thepandas<2.0.0
bound in downstream requirementsoption 2: to upgrade safely to
pandas 2.X
, follow the upgrade and testing instructions belowneither option impacts public interfaces of
sktime
, i.e., there are no removals, deprecations, or changes of contract besides the change ofpandas
bound insktime
requirements
attrs
changes from an implied (non-explicit) soft dependency to an explicit soft dependency (inall_extras
)
pandas 2
upgrade and testing#
support for
pandas 2
will be 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 ofpandas<2.0.0
sktime
will aim to be compatible withpandas 2.0.X
as well aspandas 1, >=1.1.0
,sktime
can be run and tested withpandas 2.0.X
by force-installingpandas 2.0.X
estimators can be tested for
pandas 2
compatibility viacheck_estimator
under force-installedpandas 2.0.X
reports on compatibility issues are appreciated in #4426 (direct input or link from)
in the full support period (0.19.0-onwards):
sktime
requirements will allowpandas 2.0.X
and extend support withpandas
releasessktime
will aim to be compatible withpandas 2
(any version), as well aspandas 1, >=1.1.0
users choose their preferred
pandas
version by requirements on their downstream environmentthe bug and issue trackers should be used as normal
List of PR#
[MNT] address deprecation of
"mad"
option onDataFrame.agg
andSeries.agg
(#4435) @fkiraly[MNT] address deprecation of automatic drop on
DataFrame.agg
on non-numeric columns (#4436) @fkiraly[MNT] resolve
freq
related deprecations andpandas 2
failures in reducers (#4438) @fkiraly[MNT] except
Prophet
fromtest_predict_quantiles
due to sporadic failures (#4432) @fkiraly[MNT] except
VECM
fromtest_predict_quantiles
due to sporadic failures (#4442) @fkiraly[MNT] fix and sharpen soft dependency isolation logic for
statsmodels
andpmdarima
(#4443) @fkiraly
Version 0.17.0 - 2023-04-03#
Highlights#
Full support for python 3.11
reworked probabilistic forecasting & new metrics (
LogLoss
,CRPS
), integration with tuning (#4190, #4276, #4290, #4367) @fkiralyconditional transformer
TransformIf
, e.g., deseasonalize after seasonality test (#4248) @fkiralynew transformer interfaces: Christiano-Fitzgerald and Hodrick-Prescott filter (
statsmodels
), Fourier transform (#4342, #4402) @ken-maeda, @blazingbhavneeknew forecaster:
ForecastKnownValues
forn known or expert forecasts (#4243) @fkiraly
Dependency changes#
a new soft dependency was added, the
seasonal
package, required (only) for theSeasonalityPeriodogram
estimator.
Core interface changes#
BaseObject, BaseEstimator#
all
sktime
objects and estimators now possess a config interface, via newget_config
andset_config
methods. This is currently experimental, and there are no externally facing config fields at the moment.
Data types, checks, conversions#
sktime
now recognizes nullablepandas
dtypes
and coerces them to non-nullable if necessary. Previously, nullabledtype
would cause exceptions.
Forecasting#
the
BaseDistribution
object has been introduced as a potential return of full distribution forecasts and simulation queries. This is currently experimental, feedback and contributions are appreciated.Forecasters’
predict_proba
now returns ansktime
BaseDistribution
object, iftensorflow-probability
is not present (e.g., on python 3.11), or if the temporary deprecation argumentlegacy_interface=False
is set. The oldtensorflow
based interfaced will be deprecated over two cycles, see below.sktime
now contains metrics and losses for probability distribution forecasts. These metrics assumeBaseDistribution
objects as forecasts.
Deprecations and removals#
Dependencies#
numba
will change from core dependency to soft dependency insktime 0.18.0
. To ensure functioning of setups ofsktime
code dependent onnumba
based estimators going forward, ensure to installnumba
in the environment explicitly, or install theall_extras
soft dependency set which will continue to containnumba
. Besides this,numba
dependent estimators will function identically as before.sktime
’s base module will move to a new core dependency,skbase
, fromsktime 0.18.0
. This will not impact functionality or imports directly fromsktime
, or any usage.
Forecasting#
Forecasters’
predict_proba
pre-0.17.0tensorflow
based return will be replaced byBaseDistribution
object based return. This will be phased out in two minor cycles as follows.until 0.18.0, forecasters’
predict_proba
will returnBaseDistribution
by default only in cases where callingpredict_proba
would have raised an error, prior to 0.17.0, i.e., on python 3.11 and whentensorflow-probability
is not present in the python environment.until 0.18.0,
BaseDistribution
return can be enforced by setting the new argumentlegacy_interface=False
inpredict_proba
. This is useful for handling deprecation.from 0.18.0, the default for
legacy_interface
will be set toFalse
.from 0.19.0, the
legacy_interface
argument will be removed frompredict_proba
, together with the option to returntensorflow-probability
based returns.
Transformations#
DateTimeFeatures
: the default value of thekeep_original_columns
parameter has changed toFalse
FourierFeatures
: the default value of thekeep_original_columns
parameter has changed toFalse
Testing framework#
in
check_estimator
andrun_tests
, thereturn_exceptions
argument has been removed. It is now fully replaced byraise_exceptions
(its logical negation), which has been available since 0.16.0.
Enhancements#
BaseObject, BaseEstimator#
Data types, checks, conversions#
[ENH] nullable dtypes - ensure nullable columns are coerced to
float
dtype inpandas
conversions (#4245) @fkiraly[ENH]
is_equal_index
metadata element in checks and examples (#4312) @fkiraly[ENH] granular control of mtype metadata computation, avoid computation when not needed (#4389) @fkiraly, @hoesler
[ENH] turn off all unnecessary input checks in current base class boilerplate (#4390) @fkiraly
Forecasting#
[ENH] factor out column ensemble functionality from
_ColumnEnsembleForecaster
to new base mixin (#4231) @fkiraly[ENH]
ForecastKnownValues
forecaster that forecasts prescribed known or expert forecast values (#4243) @fkiraly[ENH] Improve vectorized metric calculation, deprecate
VectorizedDF.get_iloc_indexer
(#4228) @hoesler[ENH]
MeanAbsoluteError
-evaluate_by_index
(#4302) @fkiraly[ENH]
BaseForecastingErrorMetric
internal interface cleanup (#4305) @fkiraly[ENH] probabilistic forecasting rework part 1 - backend agnostic probability distributions (#4190) @fkiraly
[ENH] probabilistic forecasting rework part 2 - distribution forecast metrics log-loss, CRPS (#4276) @fkiraly
[ENH] probabilistic forecasting rework part 3 - forecasters (#4290) @fkiraly
[ENH] probabilistic forecasting rework part 4 - evaluation and tuning (#4367) @fkiraly
[ENH] informative error messages for forecasting pipeline constructors, for
steps
arg (#4371) @fkiraly
Parameter estimators#
Time series classification#
Transformations#
[ENH] transformer interfacing
numpy.fft
for simple fourier transform (#4214) @blazingbhavneek[ENH]
sktime
native column ensemble transformer (#4232) @fkiraly[ENH] refactoring segmentation transformers to use
pandas
native data types (#4267) @fkiraly[ENH] remove test for output values in
test_FeatureUnion_pipeline
(#4316) @fkiraly[ENH] Hodrick-Prescott filter transformer (
statsmodels
interface) (#4342) @ken-maeda[ENH] turn
BKFilter
into a directstatsmodels
interface (#4346) @fkiraly[ENH] Christiano-Fitzgerald filter transformer (
statsmodels
interface) (#4402) @ken-maeda
Testing framework#
[ENH] additional test parameter sets for performance metrics (#4246) @fkiraly
[ENH] test for
get_test_params
, and reserved parameters (#4279) @fkiraly[ENH] cleaned up probabilistic forecasting tests for quantile and interval predictions (#4393) @fkiraly, @yarnabrina
[ENH] cover list input case for
test_predict_interval
coverage
andtest_predict_quantiles
alpha
in forecaster contract tests (#4394) @yarnabrina
Maintenance#
[MNT] address deprecation of
pandas.DataFrame.iteritems
(#4271) @fkiraly[MNT] Fixes linting issue
B016 Cannot raise a literal
indistances
module (#4284) @SamiAlavi[MNT] add soft dependencies on python 3.11 that are 3.11 compatible (#4269) @fkiraly`
[MNT] integrate parameter estimators with
check_estimator
(#4287) @fkiraly[MNT] addressing
pytest
failure - downgradedash
to <2.9.0 (#4353) @fkiraly[MNT] resolve circular imports in
forecasting.base
(#4329) @fkiraly[MNT] Remove restrictions on branch for workflow that autodetect and updates
CONTRIBUTORS.md
(#4323) @achieveordie[MNT] carry out forgotten deprecation for
ContractableBOSS
typed_dict
parameter (#4331) @fkiraly[MNT] except forecasters failing proba prediction tests (previously masked by buggy tests) (#4364) @fkiraly
[MNT] split up
transformations.compose
into submodules (#4368) @fkiraly[MNT] replace emergency
dash
bound by exclusion of failing version 2.9.0 (#4415) @fkiraly[MNT] remove soft dependency import warnings in modules and documented requirements to add these (#4398) @fkiraly
[MNT] Fix linting issues in transformations module (#4291) @SamiAlavi
[MNT] Fixes linting issues in
base
,networks
,registry
modules (#4310) @SamiAlavi[MNT] resolve circular imports in
forecasting.base
(#4329) @fkiraly[MNT] Linting
test_croston.py
(#4334) @ShivamPathak99[MNT] except forecasters failing proba prediction tests (previously masked by buggy tests) (#4364) @fkiraly
[MNT] Auto-fixing linting issues (#4317) @SamiAlavi
[MNT] Fix linting issues in
clustering
module (#4318) @SamiAlavi[MNT] Fix linting issues in
forecasting
module (#4319) @SamiAlavi[MNT] Fixes linting issues in
annotation
module (#4309) @SamiAlavi[MNT] Fix linting issues in
series_as_features
,tests
,dist_kernels
,benchmarking
modules (#4321) @SamiAlavi[MNT] Fixes linting issues in
classification
module (#4311) @SamiAlavi[MNT] Fix linting issues in
performance_metrics
module (#4320) @SamiAlavi[MNT] Fix linting issues in
utils
module (#4322) @SamiAlavi[MNT] replace author names by GitHub ID in author fields (#4340) @SamiAlavi
[MNT] address deprecation warnings from dependencies (#4423) @fkiraly
Documentation#
[DOC] direct documentation links to
sktime.net
addresses (#4241) @fkiraly[DOC] improved reducer docstring formatting (#4160) @fkiraly
[DOC] improve docstring for
VectorizedDF.items
and.__iter__
(#4223) @fkiraly[DOC] direct documentation links to
sktime.net
addresses (#4241) @fkiraly[DOC] update transformer extension template docstrings, reference to
Hierarchical
(#4250) @fkiraly[DOC] API reference for parameter estimator module (#4244) @fkiraly
[DOC] add missing docstrings in
PlateauFinder
module (#4255) @ShivamPathak99[DOC] docstring improvements for
ColumnConcatenator
(#4272) @JonathanBechtel[DOC] Small docstring fixes in reducer module and tests (#4274) @danbartl
[DOC] clarified requirement for
get_test_params
in extension templates (#4289) @fkiraly[DOC] extension template for parameter estimators (#4288) @fkiraly
[DOC] Update
CONTRIBUTORS.md
to most recent (#4358) @fkiraly[DOC] improved method docstrings for transformers (#4328) @fkiraly
[DOC] updated
dtw_distance
docstring example to include import (#4324) @JonathanBechtel[DOC]
TimeSeriesKMeans
- correctinit_algorithm
default in docstring (#4347) @marcosousapoza[DOC] add missing import statements in numba distance docstrings (#4376) @JonathanBechtel
[DOC] guide for adding cython based estimators (#4388) @fkiraly
[DOC] add docstring example for
ForecastX
forecasting only some exogeneous variables (#4392) @fkiraly[DOC] improvements to “invitation to contribute” paragraph in documentation (#4395) @abhisek7154
[DOC] README and docs update - tasks table, typos, lookup (#4414) @fkiraly
Fixes#
Data types, checks, conversions#
[BUG] fix level name handling in conversions
nested_univ
/pd-multiindex
(#4270) @fkiraly[BUG] fix incorrect inference of
is_equally_spaced
for unequal indexpd-multiindex
typed data (#4308) @noahleegithub
Forecasting#
[BUG] fix
Settingwithcopywarning
when using custom error metric inevaluate
(#4294) @fkiraly, @marrov[BUG] fix forecasting metrics’
evaluate_by_index
for hierarchical input (#4306) @fkiraly, @marrov[BUG] pass user passed parameters to
ForecastX
to underlying estimators (#4391) @yarnabrina[BUG] fix unreported probabilistic prediction bugs detected through #4393 (#4399) @fkiraly
[BUG] ensure forecaster
cutoff
hasfreq
inferred if inferable, for single series (#4406) @fkiraly[BUG] fix
ValueError
inVECM._predict_interval
if multiple coverage values were passed (#4411) @yarnabrina[BUG] temporarily skip
test_predict_quantiles
forVAR
due to known sporadic bug #4420 (#4425) @yarnabrina
Parameter estimators#
Time series classification#
Time series regression#
Testing framework#
Utilities#
Contributors#
@abhisek7154, @achieveordie, @blazingbhavneek, @danbartl, @fkiraly, @hoesler, @JonathanBechtel, @ken-maeda, @kgeis, @lmmentel, @marcosousapoza, @marrov, @noahleegithub, @SamiAlavi, @ShivamPathak99, @yarnabrina
Version 0.16.1 - 2023-02-13#
Highlights#
Experimental python 3.11 support. Full python 3.11 support is planned with 0.17.0. (#4000, #3631, #4226) @fkiraly
Experimental benchmarking module based on
kotsu
, forecasting sub-module (#2977) @alex-hh, @dbcerigosubstantial speed-ups for panel and hierarchical transformers and forecasters (#4193, #4194, #4195, #4196) @hoesler
Testing and feedback of python 3.11 support and the benchmarking module are appreciated.
Dependency changes#
sktime
now supports python 3.11on python 3.11,
numba
is not a dependency, and a number of other packages are also not available as soft dependencies, mostly due to compatibility with 3.11.sktime
and its test suite can now be used withoutnumba
installed, with the exception of estimators depending onnumba
.numba
is still a core dependency on python 3.7-3.10.numba
will become a soft dependency, from a core dependency, in 0.18.0. Estimators dependent onnumba
will function exactly as before ifnumba
is present in the python environment.
Core interface changes#
Benchmarking#
the
kotsu
-based benchmarking module introduces a new design and syntax for benchmarking forecasters.
Forecasting#
forecasters will now consistently preserve the
name
attribute inpd.Series
passed. Previously, namedpd.Series
were not fully supported.
Deprecations and removals#
Dependencies#
numba
will change from core dependency to soft dependency insktime 0.18.0
. To ensure functioning of setups ofsktime
code dependent onnumba
based estimators going forward, ensure to installnumba
in the environment explicitly, or install theall_extras
soft dependency set which will continue to containnumba
. Besides this,numba
dependent estimators will function identically as before.
Enhancements#
Benchmarking#
Data types, checks, conversions#
Forecasting#
[ENH] fixes for forecasters to retain
name
attribute inpredict
(#4161) @fkiraly[ENH] improved/fixed
scoring
argument for forecasting tuners (#4178) @fkiraly[ENH] faster test for forecasters’
predict_residuals
(#4156) @fkiraly[ENH] test that forecasters preserve
name
attr ofpd.Series
(#4157) @fkiraly[ENH] improved/fixed
scoring
argument for forecasting tuners (#4178) @fkiraly
Transformations#
Fixes#
Data sets and data loaders#
[BUG] Correct
'StarlightCurves'
data set identifier string, to ‘StarLightCurves’ (#4222) @NeuralNut
Forecasting#
[BUG] fixes for forecasters to retain
name
attribute inpredict
(#4161) @fkiraly[BUG] ensure
pd.Series
name
attribute is preserved in conversion to/frompd.DataFrame
andnp.ndarray
, asSeries
scitype (#4150) @fkiraly[BUG]
AutoETS
,UnobservedComponents
: fixpredict_interval
for integer based index not starting at zero (#4180) @fkiraly
Parameter estimation#
Time series clustering#
Maintenance#
Documentation#
[DOC] Fix rendering of examples section in
Lag
docstring (#3960) @aiwalter[DOC] improved docstring for
dtw_distance
(#4028) @fkiraly, @matthewmiddlehurst[DOC] remove slack links in favour of discord (#4202) @fkiraly
[DOC] fix tables in transformer
transform
docstrings - change md to rst (#4199) @romanlutz[DOC] remove gap between pandas and
DataFrame
|Series
in classification notebook (#4200) (#4200) @romanlutz[DOC] Fixed table in
CI
overview documentation (#4198) @pranavvp16
Contributors#
@aiwalter, @alex-hh, @danbartl, @dbcerigo, @fkiraly, @hoesler, @matthewmiddlehurst, @NeuralNut, @pranavvp16, @romanlutz
Version 0.16.0 - 2023-01-30#
Highlights#
HierarchyEnsembleForecaster
for level- or node-wise application of forecasters on panel/hierarchical data (#3905) @VyomkeshVyasnew transformer:
BKFilter
, Baxter-King filter, interfaced fromstatsmodels
(#4127) @klam-data, @pyyim`get_fitted_params
of pipelines and other heterogeneous meta-estimators now supports parameter nesting (#4110) @fkiraly
Dependency changes#
statsmodels
is now a soft dependency. Estimators dependent onstatsmodels
can be used exactly as before ifstatsmodels
is present in the python environment.
Core interface changes#
BaseEstimator#
The method
get_fitted_params
, of allBaseEstimator
descendants (any estimator withfit
), has a new boolean argumentdeep
, defaultTrue
. Similar to the argument of the same name ofget_params
, this allows to control for composite estimators, whether to return fitted parameters with or without estimator nesting.
Forecasting#
all forecasters: the public
cutoff
attribute of forecasters has changed topd.Index
subtype, from index element. To update previously functional code, replace references tocutoff
bycutoff[0]
.
Deprecations and removals#
Dependencies#
statsmodels
has changed from core dependency to soft dependency insktime 0.16.0
. To ensure functioning of setups ofsktime
code dependent onstatsmodels
based estimators going forward, ensure to installstatsmodels
in the environment explicitly, or install theall_extras
soft dependency set which will continue to containstatsmodels
.
Data types, checks, conversions#
check_is_scitype
: themsg_legacy_interface
argument has now been removed. Future behaviour is as per the default of the argument,msg_legacy_interface=False
.
Forecasting#
all forecasters: the public
cutoff
attribute of forecasters has changed topd.Index
subtype, from index element. To update previously functional code, replace references tocutoff
bycutoff[0]
.
Transformations#
Catch22
: thetransform_single_feature
method has been removed from theCatch22
transformerFourierFeatures
: in 0.17.0, the default value of thekeep_original_columns
parameter will change toFalse
Enhancements#
BaseEstimator#
Data types, checks, conversions#
Forecasting#
[ENH]
HierarchyEnsembleForecaster
for level- or node-wise application of forecasters on panel/hierarchical data (#3905) @VyomkeshVyas[ENH] second set of test parameters for
ARIMA
(#4099) @fkiraly[ENH] Refactor/simplify
sktime.forecasting.model_selection._split.BaseSplitter._split_vectorized
(#4108) @mateuja
Time series annotation#
[ENH]
PoissonHMM
estimator (#4126) @klam-data
Time series classification#
[ENH] Reduce repetitive code in
test_boss.py
and add check for string datatype in _boss.py (#4100) @erjieyong
Time series generators#
[ENH] added
piecewise_multinomial
(#4079) @JonathanBechtel
Transformations#
[ENH] Add
keep_original_columns
option toFourierFeatures
trafo (#4008) @KishManani[ENH] Add
BKFilter
Transformer (#4127) @klam-data, @pyyim`
Maintenance#
[MNT] Automate updating CONTRIBUTORS.md (#3807) @achieveordie
[MNT] address
pd.Series
constructordtype
deprecation /FutureWarning
- part 2 (#4111) @fkiraly[MNT] 0.16.0 change/deprecation action -
statsmodels
as soft dependency (#3516) @fkiraly[MNT] emergency fix for precommit CI failure - remove
isort
(#4164) @fkiraly[MNT] isolate
statsmodels
inHierarchyEnsembleForecaster
docstring (#4166) @fkiraly[MNT] 0.16.0 deprecation action - change
BaseForecaster.cutoff
topd.Index
(#3678) @fkiraly[MNT] isolate
statsmodels
inHierarchyEnsembleForecaster
docstring - accidentally missing commit (#4168) @fkiraly[MNT] Bump
isort
to5.12.0
inpre-commit
config (#4167) @snnbotchway
Documentation#
Fixes#
BaseObject#
Forecasting#
[BUG] fix
get_fitted_params
for forecaster tuners, missingbest_forecaster
etc (#4102) @fkiraly[BUG] fix
get_fitted_params
in case of vectoriztion for forecasters (#4105) @fkiraly[BUG] fix erroneous
int
coercion ofTrendForecaster
andPolynomialTrendForecaster
onDatetimeIndex
(#4133) @fkiraly[BUG] Remove unnecessary
freq
error in_RecursiveReducer
(#4124) @danbartl
Time series classification#
[BUG] Diagnose and fix sporadic failures in the test suite due to
MemoryError
(#4036) @achieveordie[BUG] fix - Callbacks cause deep learning estimators to fail (#4095) @aaronrmm
Transformations#
Contributors#
@aaronrmm, @achieveordie, @danbartl, @erjieyong, @fkiraly, @JonathanBechtel, @KishManani, @klam-data, @mateuja, @Pyyim, @romanlutz, @snnbotchway, @VyomkeshVyas
Version 0.15.1 - 2023-01-12#
Highlights#
substantial speed-ups of boilerplate for panel and hierarchical data, may result in 10-50x overall speed improvement on large panel/hierarchical data (#3935, #4061) @danbartl
dunders for time series distances and kernels, for arithmetic composition and pipelining (#3949) @fkiraly
pipelines and dunders for time series clustering (#3967) @fkiraly
new estimators: DBSCAN clustering for time series; kernel support vector classifier for time series kernels (#3950, #4003) @fkiraly, @josuedavalos
notes and troubleshooting guide for installing
sktime
under macOS with ARM processors (#4010) @dainelli98
Core interface changes#
BaseObject#
the
python_dependencies
tag now allows full PEP 440 specifier strings for specifying package dependencies
Data types, checks, conversions#
new mtypes for time series, panels and hierarchical data that can be used when
dask
is installed:dask_series
,dask_panel
,dask_hierarchical
. These can be used in estimators now. End-to-end integration withdask
is not yet available, but on the roadmap.
Distances, kernels#
pairwise transformers now possess a method
transform_diag
which returns the diagonal of the distance/kernel matrixpairwise panel transformers can be composed with each other using arithmetic operations, which will result in the corresponding arithmetic combination of transformers, e.g., sum of distances
pairwise panel transformers can be composed with simple transformers using the
*
dunder, which will result in a pipeline of first applying the simple transformer, then the pairwise transformer
Time series clustering#
time series clusterers can now be used with
make_pipeline
and the*
dunder to build linear pipelines with time series transformers
Deprecations and removals#
in
check_estimator
andrun_tests
, thereturn_exceptions
argument has been deprecated, and will be replaced withraise_exceptions
(its logical negation) in 0.17.0. Until 0.17.0, both arguments will work, with non-defaults being overriding.
Enhancements#
Data types, checks, conversions#
[ENH]
dask
mtypes - part 2,Panel
andHierarchical
(#4011) @fkiraly[ENH] speed up mtype check for
pandas
based mtypes withpd.PeriodIndex
(#3991) @fkiraly[ENH] improve performance of
pandas
based panel and hierarchical mtype checks (#3935) @danbartl[ENH] Speed up hierarchical checks and unify with panel approach (#4061) @danbartl
Distances, kernels#
[ENH] generalize
AggrDist
andFlatDist
to allow arbitrary callables, includingsklearn
kernel functions (#3956) @fkiraly[ENH]
transform_diag
method for pairwise transformers, for computing diagonal of distance/kernel matrix (#3957) @fkiraly[ENH] wrapper to convert kernels to distances and distances to kernels (#3958) @fkiraly
[ENH] dunders for time series distances and kernels (#3949) @fkiraly
Forecasting#
[ENH] add global forecasting (pooling) options to
DirectTabularRegressionForecaster
andDirectTimeSeriesRegressionForecaster
(#3688) @danbartl[ENH] forecasting benchmark function
evaluate
to accept list of scorers (#3883) @aiwalter[ENH] add contract test for hierarchical forecasting (#3969) @fkiraly
[ENH] extend
Prophet
to allowpd.PeriodIndex
(#3995) @fkiraly[ENH] improve handling of
scitype
inmake_reduction
(#4022) @fkiraly[ENH]
hcrystalball
forecaster adapter (#4040) @MichalChromcak
Pipelines#
Time series classification#
Time series clustering#
[ENH] DBSCAN clustering for time series (#4003) @fkiraly, @josuedavalos
Transformations#
[ENH] “typical length” constant in transformer scenarios (#3892) @fkiraly
[ENH] change
DateTimeFeatures
trafo to work with multi-index data and add option to drop columns. (#3996) @KishManani[ENH] enable
TimeSince
trafo to transform multiindex dataframes natively (#4006) @KishManani[ENH] make
TimeSince
trafo faster by changing period diff calculation (#4018) @KishManani[ENH] clean up
Detrender
, extend to forecasters which require forecasting horizon infit
(#4053) @fkiraly
Testing framework#
[ENH] update
_check_soft_dependencies
to allow PEP 440 specifier strings for version bounds (#3925) @fkiraly[ENH] allow tuples/lists of package identifier strings in
_check_soft_dependencies
(#3955) @fkiraly[ENH]
_check_estimator_deps
to also allows list or tuple ofBaseObject
-s (#4002) @fkiraly[ENH] extend
sklearn_scitype
to infer the scitype correctly from composites (#4021) @fkiraly[ENH] Improve error messages in
test_estimator_tags
test (#4014) @fkiraly[ENH] in
check_estimator
andrun_tests
replacereturn_exceptions
arg withraise_exceptions
, with deprecation (#4030) @fkiraly[ENH] add test parameter sets to increase number of test parameter sets per estimator to 2 or larger (#4043) @fkiraly
Visualisations#
[ENH] Implementing plot title for
plot_series
(#4038) @arnavrneo
Maintenance#
[MNT] carry out accidentally missed deprecation action for 0.15.0: in
WEASEL
andBOSS
, removetype_dict
and update defaultalphabet_size=2
(#4025) @xxl4tomxu98[MNT] move
badrmarani
contrib to chronological order (#4029) @fkiraly[MNT] skip #4033 related failures until fixed (#4034) @fkiraly
[MNT] skip
LSTMFCNClassifier
tests due to unfixed failure onmain
(#4037) @fkiraly[MNT] explicit lower version bound on
scipy
(#4019) @fkiraly[MNT] fix
_check_soft_dependencies
breaking for PEP 440 specifiers without class reference (#4044) @fkiraly[MNT] downwards compatibility fixes for minimal dependency set (#4041) @fkiraly
[MNT] address
pd.Series
constructordtype
deprecation /FutureWarning
(#4031) @fkiraly[MNT] isolate
statsmodels
, recent instances (#4035) @fkiraly[MNT] address
pandas
astype
deprecation /FutureWarning
inTrendForecaster
(#4032) @fkiraly[MNT] explicit use of
min_periods
args insideWindowSummarizer
to address deprecation message (#4052, #4074) @arnavrneo
Documentation#
[DOC] complete docstring for
ForecastingPipeline
(#3840) @darshitsharma[DOC] updates to distances API reference page (#3852) @MatthewMiddlehurst, @fkiraly
[DOC] add some missing entries in API reference (#3998) @fkiraly
[DOC] fix the build tag in README (#4007) @badrmarani
[DOC] warning, notes, and troubleshooting for installing
sktime
with macOS ARM (#4010) @dainelli98[DOC]
all_estimators
reference on all estimator pages (#4027) @fkiraly, @MatthewMiddlehurst[DOC] remove
make_reduction
scitype arg in examples (#4020) @fkiraly[DOC] more details on code quality and linting (#4063) @miraep8
[DOC] section on new tests in
PULL_REQUEST_TEMPLATE
(#4093) @Aarthy153
Fixes#
Distances, kernels#
Forecasting#
[BUG] fix
StatsForecastAutoARIMA_.predict
incorrect in-sample start index (#3942) @tianjiqx[BUG] fix
statsmodels
estimators when exogenousX
is passed with more indices thanfh
(#3972) @adoherty21[BUG] fix
ReconcilerForecaster
when not used in a pipeline withAggregator
(#3980) @ciaran-g[BUG] fix logic bug in
ForecastX
predictions (#3987) @aiwalter, @fkiraly[BUG] fix
Prophet
not working with non-integer forecast horizon (#3995) @fkiraly[BUG] fix dropped column index in
BaggingForecaster
(#4001) @fkiraly[BUG] fix
TrendForecaster
ifregressor
is not boolean coercible (#4047) @fkiraly[BUG] fix mutation of
regressor
inPolynomialTrendForecaster._fit
(#4057) @fkiraly[BUG] fix
ConformalIntervals
update whensample_frac
argument is not None (#4083) @bethrice44
Governance#
Time series classification#
[BUG] constructor of any DL estimator to pass non-default values to underlying
Network
object (#4075) @achieveordie[BUG] Fix BOSS based classifiers truncating class names to single character length (#4096) @erjieyong
Time series clustering#
Time series regression#
[BUG] constructor of any DL estimator to pass non-default values to underlying
Network
object (#4075) @achieveordie
Transformations#
[BUG] fix
TimeSince
check of inconsistency betweentime_index
andstart
(#4015) @KishManani[BUG] fix multivariate and hierarchical behaviour of
Detrender
(#4053) @fkiraly
Testing framework#
Visualisations#
Contributors#
@Aarthy153, @achieveordie, @adoherty21, @aiwalter, @arnavrneo, @badrmarani, @bethrice44, @ciaran-g, @dainelli98, @danbartl, @darshitsharma, @erjieyong, @fkiraly, @hakim89, @josuedavalos, @KishManani, @MatthewMiddlehurst, @MichalChromcak, @miraep8, @patrickzib, @tianjiqx, @xxl4tomxu98
Version 0.15.0 - 2022-12-22#
Highlights#
MLflow
custom flavor forsktime
forecasting (#3912, #3915) @benjaminbluhmcompatibility with most recent versions of core dependencies
sktime 1.2.0``and ``numpy 1.24
(#3922) @fkiralyTimeBinner
transformation for temporal bin aggregation (#3745) @kcc-lionE-Agglo estimator for hierarchical agglomerative cluster estimation (#3430) @KatieBuc
week-end dummy
is_weekend
inDateTimeFeatures
transformation (#3844) @KishMananideep learning classifiers migrated from
sktime-dl
tosktime
: ResNet, LSTM-FCN (#3714, #3881) @nilesh05apr, @solen0id
Dependency changes#
sktime
is now compatible withnumpy 1.24
, bound is relaxed to<1.25
sktime
is now compatible withsklearn 1.2.0
, bound is relaxed to<1.3.0
pycatch22
is no longer a soft dependency ofsktime
, due to installation issues.pycatch22
based transformers are still functional if the dependency is installed in the python environment.statsmodels
will change from core dependency to soft dependency insktime 0.16.0
Core interface changes#
BaseObject#
Comparison by equality for any sktime
object now compares identity of parameters,
as obtained via get_params
, with recursive application if objects/estimators are nested.
Deprecations and removals#
Dependencies#
statsmodels
will change from core dependency to soft dependency insktime 0.16.0
. To ensure functioning of setups ofsktime
code dependent onstatsmodels
based estimators after the deprecation period, ensure to installstatsmodels
in the environment explicitly, or install theall_extras
soft dependency set which will continue to containstatsmodels
.
Data types, checks, conversions#
datatypes.check_is_scitype
: 2nd return argument (only returned if return_metadata=True
)
will be changed from list
to dict
format (see docstring).
The list
format is deprecated since 0.14.0, and replaced by dict
in 0.15.0.
The format is determined by temporary additional arg msg_legacy_interface
, which will be
the default has now changed to False
(dict
format).
The msg_legacy_interface
argument and the option to return the legacy list
format will be removed in 0.16.0.
Forecasting#
ExpandingWindowSplitter
hadstart_with_window
argument removed. From now on,initial_window=0
should be used instead ofstart_with_window=False
.the row transformers,
SeriesToSeriesRowTransformer
andSeriesToPrimitivesRowTransformer
have been removed. Row/instance vectorization functionality is natively supported bysktime
since 0.11.0 and does not need to be added by these wrappers anymore. Both transformers will be removed in 0.15.0. To migrate, simply remove the row transformer wrappers. In some rarer, ambiguous vectorization cases (e.g., using wrapped functions that are vectorized, such asnp.mean
),FunctionTransformer
may have to be used instead ofSeriesToPrimitivesRowTransformer
.change to public
cutoff
attribute delayed to 0.16.0: publiccutoff
attribute of forecasters will change topd.Index
subtype, from index element.
Time series classification#
Delayed: the base class of
ProbabilityThresholdEarlyClassifier
will be changed toBaseEarlyClassifier
in 0.16.0. This will change how classification safety decisions are made and returned, seeBaseEarlyClassifier
orTEASER
for the new interface.
Transformations#
transformations.series.compose
has been removed in favour oftransformations.compose
. All estimators in the former have been moved to the latter.The default of
default_fc_parameters
inTSFreshFeatureExtractor
andTSFreshRelevantFeatureExtractor
has beenchanged from"efficient"
to"comprehensive"
.
Testing framework#
The general interface contract test
test_methods_do_not_change_state
has been renamed totest_non_state_changing_method_contract
Enhancements#
MLOps & Deployment#
[ENH] MLflow custom flavor for
sktime
forecasting (#3912) @benjaminbluhm
BaseObject#
Forecasting#
Time series annotation#
Time series classification#
[ENH] Migrate LSTM-FCN classifier from
sktime-dl
tosktime
(#3714) @solen0id[ENH] Migrate
ResNetClassifier
fromsktime-dl
tosktime
(#3881) @nilesh05apr
Time series regression#
[ENH]
DummyRegressor
for time series regression (#3968) @badrmarani
Transformations#
[ENH]
TimeBinner
transformation for temporal bin aggregation (#3745) @kcc-lion[ENH] Add
is_weekend
option toDateTimeFeatures
trafo (#3844) @KishManani[ENH] Add multiplicative option to
Detrender
(#3931) @KishManani
Visualisations#
[ENH] Add support for plotting intervals in
plot_series
(#3825) @chillerobscuro[ENH] Add
colors
argument toplot_series
(#3908) @chillerobscuro
Fixes#
Forecasting#
Time series classification#
Time series regression#
Transformations#
Visualisations#
Documentation#
[DOC] fixed rendering in dependencies doc (#3846) @templierw
[DOC] update transformers extension section in transformers tutorial (#3860) @fkiraly
[DOC] tidying Rocket docstrings (#3860) @TonyBagnall
[DOC] added post-processing in pipelines to forecasting tutorial (#3878) @nshahpazov
[DOC] changing import path for
plot_cluster_algorithm
(#3945) @GianFree
Maintenance#
[MNT] Additional project urls in
pyproject.toml
(#3864) @lmmentel[MNT]
sklearn 1.2.0
compatibility - remove private_check_weights
import inKNeighborsTimeSeriesClassifier
and -Regressor
(#3918) @fkiraly[MNT]
sklearn 1.2.0
compatibility - coverBaseForest
parameter change (#3919) @fkiraly[MNT]
sklearn 1.2.0
compatibility - decouplesklearn.base._pprint
(#3923) @fkiraly[MNT]
sklearn 1.2.0
compatibility - removenormalize=False
args fromRidgeClassifierCV
(#3924) @fkiraly[MNT]
sklearn 1.2.0
compatibility -ComposableTimeSeriesForest
reserved attribute fix (#3926) @fkiraly[MNT] remove
pycatch22
as a soft dependency (#3917) @fkiraly[MNT] Update
sklearn
compatibility to1.2.x
, version bound to<1.3
(#3922) @fkiraly[MNT] bump
numpy
version bound to<1.25
and fix compatibility issues (#3915) @aquemy, @fkiraly[MNT] skip sporadic
ResNetClassifier
failures (#3974) @fkiraly
Contributors#
@aiwalter, @aquemy, @badrmarani, @benjaminbluhm, @bethrice44, @chillerobscuro, @ciaran-g, @danbartl, @dsanr, @fkiraly, @GianFree, @KatieBuc, @kcc-lion, @KishManani, @lmmentel, @nilesh05apr, @nshahpazov, @solen0id, @templierw, @TonyBagnall
Version 0.14.1 - 2022-11-30#
Highlights#
dedicated notebook tutorial for transformers and feature engineering - stay tuned for more at pydata global 2022! (#1705) @fkiraly
documentation & step-by-step guide to add a new dataset loader (#3805) @templierw
new transformer:
Catch22Wrapper
, direct interface forpycatch22
(#3431) @MatthewMiddlehurstnew transformer:
TimeSince
for feature engineering, time since fixed date/index (#3810) @KishMananipermutation wrapper
Permute
for tuning of estimator order in forecatsing pipelines (#3689) @aiwalter @fkiralyall soft dependencies are now isolated in tests, all tests now run with minimal dependencies (#3760) @fkiraly
Core interface changes#
Forecasting#
dunder method for variable subsetting exogeneous data:
my_forecaster[variables]
will create aForecastingPipeline
that subsets the exogeneous data tovariables
Enhancements#
BaseObject#
Forecasting#
[ENH] direct reducer prototype rework based on feedback (#3382) @fkiraly
[ENH] forecast default update warning to point to stream forecasting wrappers (#3410) @fkiraly
[ENH] getitem / square brackets dunder for forecasting (#3740) @fkiraly
[ENH] Add test for global forecasting case (#3728) @danbartl
Time series classification#
[ENH]
Catch22Transformer
update andCatch22Wrapper
forpycatch22
(#3431) @MatthewMiddlehurst[ENH]
MinirocketMultivariateVariable
transformer, miniROCKET for unequal length time series (#3786) @michaelfeil[ENH] slightly speed up the tests for
ComposableTimeSeriesForestClassifier
(#3762) @TonyBagnall[ENH] Warning rather than error for TDE small series (#3767) @MatthewMiddlehurst
[ENH] Add some
get_test_params
values to deep learning classifiers and regressors (#3761) @TonyBagnall
Time series regression#
[ENH] Add some
get_test_params
values to deep learning classifiers and regressors (#3761) @TonyBagnall
Transformations#
[ENH] better error message on transform output check fail (#3724) @fkiraly
[ENH] second test case for
FeatureUnion
, construction without names (#3792) @fkiraly[ENH] permutation wrapper
Permute
for tuning of pipeline sequence (#3689) @aiwalter @fkiraly[ENH]
fit_transform
forTSFreshRelevantFeatureExtractor
(#3785) @MatthewMiddlehurst[ENH]
TimeSince
transformer for feature engineering, time since fixed date/index (#3810) @KishManani
Governance#
[GOV] Add @achieveordie as a core developer (#3851) @achieveordie
Fixes#
Data loaders#
Forecasting#
[BUG] fix
ColumnEnsembleForecaster
for hierarchicalX
(#3768) @RikStarmans @fkiraly[BUG] decouple forecasting pipeline module from registry (#3799) @fkiraly
Time series classification#
[BUG]
keras
import quick-fix (#3744) @ltsaprounis[BUG] in
TemporalDictionaryEnsemble
, setParallel
prefer="threads"
, fixes #3788 (#3808) @TonyBagnall[BUG] in
DummyClassifier
, fix incorrectly setcapability:multivariate
tag (#3858) @fkiraly
Transformations#
[BUG] fix behaviour of FourierFeatures with pd.DatetimeIndex (#3606) @eenticott-shell
[BUG] fix infinite loop in
get_params
forFeatureUnion
(#3708) @hoesler @fkiraly[BUG]
SupervisedIntervals
bugfixes and clean up (#3727) @MatthewMiddlehurst[BUG] Reduce size of
MultiRocket
test example to avoid sporadicMemoryError
in testing (#3813) @TonyBagnall[BUG] fix return index for transformers’
Primitives
output in row vectorization case (#3839) @fkiraly[BUG] in
Reconciler
, fix summation matrix bug for small hierarchies with one unique ID in outer index (#3859) @ciaran-g
Testing framework#
[BUG] Update
test_deep_estimator_full
to incorporate new versions oftensorflow
/keras
(#3820) @achieveordie
Documentation#
[DOC] Update documentation for Greedy Gaussian Segmentation (#3739) @lmmentel
[DOC] Compose and deep learning classifier doc tidy (#3756) @TonyBagnall
[DOC] added new slack link (#3747) @hadifawaz1999
[DOC] Updates documentation for channel selection (#3770) @haskarb
[DOC] Update File Format Specifications page to show list of hyperlinked formats (#3775) @achieveordie
[DOC] Examples webpage (#3653) @MatthewMiddlehurst
[DOC] Update CC and CoC and active core-devs lists in
team.rst
(#3733) @GuzalBulatova[DOC] Improve ShapeletTransformClassifier docstring (#3737) @MatthewMiddlehurst
[DOC] Improve sklearn classifier docstrings (#3754) @MatthewMiddlehurst
[DOC] Add missing estimators to classification API page (#3742) @MatthewMiddlehurst
[DOC] Updates to regression API reference (#3751) @TonyBagnall
[DOC] Fixed doc typo in
RocketClassifier
docstring (#3759) @matt-wisdom[DOC] Include section on unequal length data in classification notebook (#3809) @MatthewMiddlehurst
[DOC] documentation on workflow of adding a new dataset loader (#3805) @templierw
[DOC] add defaults in
ScaledLogitTransformer
docstring (#3845) @fkiraly[DOC] Update CONTRIBUTORS.md (#3781) @achieveordie
[DOC] Docstring improvements to
TSFreshRelevantFeatureExtractor
(#3785) @MatthewMiddlehurst
Maintenance#
[MNT] Converted
setup.py
topyproject.toml
. Depends onsetuptools>61.0.0
(#3723) @jorenham @wolph[MNT] decouple forecasting pipeline module from registry (#3799) @fkiraly
[MNT] temporary skip of new failure
test_deep_estimator_full[keras-adamax]
(#3817) @fkiraly[MNT] fix
pyproject.toml
broken string (#3797) @TonyBagnall[MNT] exclude
TapNet
from tests (#3812) @TonyBagnall[MNT] test soft dependency isolation in non-suite tests (#3750) @fkiraly
[MNT] Address
ContinuousIntervalTree
andRandomShapeletTransform
deprecation warnings (#3796) @MatthewMiddlehurst[MNT] isolate
statsmodels
, part 4: isolatingstatsmodels
in non-suite tests (#3821) @fkiraly
Contributors#
@achieveordie, @aiwalter, @ciaran-g, @danbartl, @eenticott-shell, @fkiraly, @hadifawaz1999, @haskarb, @hoesler, @jorenham, @KishManani, @lmmentel, @matt-wisdom, @MatthewMiddlehurst, @michaelfeil, @RikStarmans, @templierw, @TonyBagnall, @wolph
Version 0.14.0 - 2022-11-05#
Highlights#
serialization and deserialization of all
sktime
objects viasave
method &base.load
(#3336, #3425) @achieveordie @fkiralydocumented format specification for
.ts
files (#3380) @achieveordienew forecaster: modular/configurable Theta forecaster (#1300) @GuzalBulatova
new probabilistic prediction adder for forecasters: squaring residuals (#3378) @kcc-lion
forecasting
evaluate
now supports hierarchical and panel data and parallelism viadask
andjoblib
(#3511, #3542) @topher-lo @fkiralyget_fitted_params
now supported for all estimators via defaults (#3645) @fkiraly
Core interface changes#
BaseObject & BaseEstimator#
all objects and estimators (
BaseObject
descendants) now possess asave
method for serialization to memory or file. Serialized objects can be deserialized bybase.load
. Interface contracts onsave
andload
are now tested by the standard test suite (e.g.,check_estimator
).all fittable objects (“estimators”,
BaseEstimator
descendants) now have a functioning default implementation ofget_fitted_params
. Interface contracts onget_fitted_params
are now tested by the standard test suite (e.g.,check_estimator
).the extender contract for
get_fitted_params
has changed. For new implementations ofsktime
estimators, developers should implement_get_fitted_params
rather thanget_fitted_params
directly, similar tofit
and_fit
. The extension templates have been updated accordingly. Estimators following the old extension contract are still compatible for the time being and will remain compatible at least until 0.15.0.
Deprecations and removals#
Forecasting#
ExpandingWindowSplitter
parameterstart_with_window
is deprecated and will be removed in 0.15.0. For continued functionality ofstart_with_window=True
, usestart_with_window=0
instead. Other values ofstart_with_window
will behave as in the casestart_with_window=False
.Isolated
pd.timedelta
elements should no longer be passed to splitters andForecastingHorizon
, aspandas
has deprecatedfreq
forpd.delta
. Exceptions will be raised in corner cases wherefreq
as not been passed and cannot be inferred.change to public
cutoff
attribute delayed to 0.15.0: publiccutoff
attribute of forecasters will change topd.Index
subtype, from index element.
Time series classification#
The base class of
ProbabilityThresholdEarlyClassifier
will be changed toBaseEarlyClassifier
in 0.15.0. This will change how classification safety decisions are made and returned, seeBaseEarlyClassifier
orTEASER
for the new interface.
Transformations#
The default of
default_fc_parameters
inTSFreshFeatureExtractor
andTSFreshRelevantFeatureExtractor
will change from"efficient"
to"comprehensive"
in 0.15.0.
Testing framework#
The name of the test
test_methods_do_not_change_state
will change totest_non_state_changing_method_contract
in 0.15.0. For a safe transition in a case where the old name has been used as part of an argument incheck_estimator
, use both the new and the old name (in a list) in test/fixture exclusion or inclusion.
Enhancements#
BaseObject#
[ENH]
get_args
default handling for keys not present (#3595) @fkiraly[ENH] improve base class test docstrings and clone test (#3555) @fkiraly
[ENH]
get_fitted_params
for nestedsklearn
components (#3645) @fkiraly[ENH] Serialization and deserialization of estimators (#3336) @fkiraly
[ENH] Serialization and deserialization of deep learning estimators (#3425) @achieveordie
Data loaders#
[ENH] support for
@targetlabel
identifier for.ts
files inload_from_tsfile
(#3436) @achieveordie[ENH] refactor/integrate
_contrib
-datasets
(#3518) @fkiraly
Data types, checks, conversions#
Forecasting#
[ENH] modular/configurable Theta forecaster (#1300) @GuzalBulatova
[ENH] global/local recursive reduction prototype (#3333) @fkiraly
[ENH] extend recursive strategy in
make_reduction
to allow global pooling on panel data (#3451) @danbartl[EHN] Parallelized
evaluate
with{joblib, dask}
(#3511) @topher-lo[ENH] use
statsmodels
append
in_StatsModelsAdapter._update
(#3527) @chillerobscuro[ENH] extend
evaluate
to hierarchical and panel data (#3542) @fkiraly[ENH]
numpy
integer support forColumnEnsembleForecaster
(#3557) @fkiraly[ENH] multivariate test case for
EnsembleForecaster
(#3637) @fkiraly[ENH] extend
ColumnEnsembleForecaster
to allow application of multivariate forecasters (#3504) @fkiraly[ENH] add forecaster test case with string columns (#3506) @fkiraly
[ENH] extend forecasting grid/random search to hierarchical and panel data (#3548) @fkiraly
[ENH] Make
EnsembleForecaster
work with multivariate data (#3623) @AnH0ang[ENH]
ExpandingWindowSplitter
fix forinitial_window=0
and deprecating"start_with_window"
(#3690) @chillerobscuro
Parameter estimation#
Time series annotation#
Time series classification#
[ENH] TapNet DL Model for classification (#3386) @achieveordie
[ENH] refactor/integrate
_contrib
-diagram_code
(#3519) @fkiraly[ENH] fast test parameters for
TapNet
estimators and docstring/interface cleanup (#3544) @achieveordie[ENH] more relevant parameters to
CNNRegressor
for user flexibility (#3561) @achieveordie[ENH] allow
KNeighborsTimeSeriesClassifier
to handle distances between unequal length series (#3654) @fkiraly
Time series regression#
[ENH] TapNet DL Model for regression from
sktime-dl
(#3481) @achieveordie[ENH] allow
KNeighborsTimeSeriesRegressor
to handle distances between unequal length series(#3654) @fkiraly
Transformations#
[ENH] test that
TruncationTransformer
preserves index and column names inpd-multiindex
(#3535) @fkiraly[ENH] replace inplace sort by non-inplace sort in
Reconciler
(#3553) @fkiraly[ENH]
SupervisedIntervals
transformer and cleanednumba
functions (#3622) @MatthewMiddlehurst[ENH]
TSFreshFeatureExtractor
cleanup, tests, and docstring (#3636) @kcc-lion[ENH] Option to fit
Clearsky
transformer in parallel (#3652) @ciaran-g
Testing framework#
Governance#
[GOV] add @GuzalBulatova to CC (#3505) @GuzalBulatova
[GOV] new CC observers role, update to role holders list (#3505) @GuzalBulatova
[GOV] clarifications on algorithm maintainer role (#3676) @fkiraly