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.40.1 - 2025-11-24#
Mini-release to correct Zenodo indexing record.
Version 0.40.0 - 2025-11-24#
Highlights#
Double ML forecaster for causal forecasting with confounder adjustment (#8797) @geetu040, @XAheli
Activation functions are now configurable in most deep learning regressors and classifiers (#8934) @noxthot
ConvTimeNet for time series forecasting (#8963) @Tanuj-Taneja1
TSB forecaster for intermittent demand (#7995) @swetha3456
TiRexForecasternow uses the officialtirex-tspackage (#8876) @martinloretzzzfABBATransform (#8838) @poopsiclepoodingpmdarimabased estimators now supportnumpy 2.X, sincepmdarimais now compatible with it.
Dependency changes#
python 3.14is now supported by thesktimeframework. Individual estimators may not support it yet, users should consult thepython_dependenciestag.pytorch-forecasting(forecasting soft dependency) bounds have been updated to>=1.0.0,<1.6.0.freiaandpykansoft dependencies have been removed from the deep learning soft dependency setdl. Users of estimators depending on these packages will need to install them separately.
BaseObject and base framework#
Benchmarking, Metrics, Splitters#
[ENH] Test param sets for MeanAbsoluteError (#8957) @Astrael1
[ENH] refactor benchmark storage handlers (#8940) @omkar-334
[ENH] benchmarks to work without file being written (#8937) @fkiraly
[ENH] internal architecture improvements to benchmarking module (#8250) @fkiraly
[ENH] in benchmarking module, replace “no file IO” handling with null handler (#8977) @fkiraly
[ENH] MeanArctangentAbsolutePercentageError (MAAPE) metric (#9094) (#9095) @alphaleporus
Data sets and data loaders#
Forecasting#
[ENH] TSB forecaster for intermittent demand (#7995) @swetha3456
[ENH] Moved SARIMAX skipping all tests from _config.py to estimator tag (#8981) @mabuimo
[ENH] ConvTimeNet for time series forecasting (#8963) @Tanuj-Taneja1
[ENH] Use
tirex-tspackage for TiRex model (#8876) @martinloretzzz[ENH] improve soft dependency isolation patterns (#8997) @fkiraly
[ENH]
DMLForecasterfor causal forecasting with confounder adjustment (#8797):user:geetu040, @XAheli[ENH] update
MOIRAIForecasterwithhf_xetrequirement (#9032) @fkiraly[ENH] Align
_predictmethod parameters{fh, X}order across BaseForecaster subclasses (#9066) @Faakhir30[ENH]
UnobservedComponentssecond set of test parameters (#8970) @Abelarm
Time series anomalies, changepoints, segmentation#
Time series classification#
[ENH]
BOSSEnsemblesecond set of test parameters (#8922) @Abelarm[ENH]
MrSQM- correctly set randomness capability tags (#8941) @fkiraly[ENH] Moved Proximity classes skipped test from
tests._configto estimator tags (#8935) @Abelarm[ENH]
CanonicalIntervalForestsecond set of test parameters (#8951) @Abelarm[ENH] Propagate and unify use of
activationandactivation_*in various deep learning based models (#8934) @noxthot[ENH] torch based RNN classifier (#8842) @RecreationalMath
[ENH] correctly set random seed tags for
MVTSTransformerClassifier(#9016) @fkiraly[ENH] improve soft dependency isolation patterns (#8997) @fkiraly
Time series regression#
[ENH] Propagate and unify use of
activationandactivation_*in various deep learning based models (#8934) @noxthot[ENH] Move SimpleRNNRegressor test skip config from
tests._configto estimator tags (#8982) @AdKnow[ENH] Move test skip config from
tests._configto FCN Regressor tags (#9084) @Navya-1817
Transformations#
[ENH] Extends
HolidayFeatureforPeriodIndex(#8777) @JATAYU000[ENH] Test parameter sets for
ReducerTransform(#8911) @Priyanshu1303d[ENH] Test parameter sets for
TimeBinner(#8865) @AryanDhanuka10[ENH] Test parameter sets for
LogTransformer(#8956) @Astrael1[ENH] transformer tags for changes to
unequal_lengthproperty (#8959) @fkiraly[ENH]
fABBATransform (#8838) @poopsiclepooding[ENH] Test parameter sets for
TruncationTransformer(#8948) @Astrael1[ENH] Make
TruncationTransformerhandle incorrect arguments (#8980) @Astrael1[ENH] Test parameter sets for
DWTTransformer(#8983) @mabuimo[ENH] Test parameter sets for
WhiteNoiseAugmenter(#8943) @Astrael1[ENH] Move
RandomIntervalstest skip from_config.pyto estimator tags (#8874) @sanskarmodi8
Test framework#
[ENH] remove
SeasonalityPeriodogramfrom framework core estimator tests (#8893) @fkiraly[ENH] detector test scenario and smoke test for detector estimators (#8914) @AryanDhanuka10
[ENH] Move
PlateauFindertest skip from config to estimator tags (#8919) @Navya-1817[ENH] add helpful error message to
check_estimatorif estimator dependencies are not present (#8958) @fkiraly[ENH]
is_module_changedto returnTrueif path cannot be found instead of exception raised (#8991) @fkiraly
Documentation#
[DOC] Fix class name of UCR UEA datasets for docs build (#8859) @jgyasu
[DOC] fix formatting of
DateTimeFeaturesdocstring (#8927) @fkiraly[DOC] Add mention of lowerdeps in testing guide (#8930) @Astrael1
[DOC] Fix code / doc mismatches in regards to
activationforTapNetRegressor,CNTCNetwork, andMACNNRegressor(#8899) @noxthot[DOC] correct extension templates re
capability:exogenous(#8920) @fkiraly[DOC] minor formatting improvement to
ForecastingHorizondocstring (#8960) @fkiraly[DOC] improved developer documentation for adding new base interfaces (#9003) @fkiraly
[DOC] documented tags for time series aligners (#9000) @fkiraly
[DOC] better documentation for benchmarking file backend handlings json, parquet, csv. (#9043) @fkiraly
[DOC] Adding some links in example notebook (#8925) @Astrael1
[DOC] Add Classifier Benchmarking Notebook to Docs (#8901) @jgyasu
[DOC] Fix rendering of examples of
AlignerDTW(#9067) @Faakhir30[DOC] Add seasonal example to
NaiveForecaster(#9085) (#9086) @alphaleporus
Maintenance#
[MNT] address
setuptoolsvulnerabilities (#8887) @yarnabrina[MNT] in tests, set
matplotlibsilent backend and print python deps (#8908) @fkiraly[MNT] Change
allcontributorsupdate to a CRON job (#8849) @JATAYU000[MNT] Skip doctests where external dataset is downloaded (#8915) @jgyasu
[MNT] Update
skforecastbounds (#8888) @yarnabrina[MNT] all-contributors update (#8962) @github-actions[bot]
[MNT] temporarily skip failing
ProximityTreeandProximityForesttests (#8947) @fkiraly[MNT] Bump
astral-sh/setup-uvfrom6to7(#8972) @dependabot[bot][MNT] Bump
actions/setup-nodefrom5to6(#8974) @dependabot[bot][MNT] all-contributors update (#8979) @github-actions[bot]
[MNT] revert to
pipon failingtest_external_data(#8985) @fkiraly[MNT] Fixing CI test failing for
python 3.10(#8986) @Abelarm[MNT] Update
pytorch-forecastingrequirement from<1.5.0,>=1.0.0to>=1.0.0,<1.6.0(#8961) @dependabot[bot][MNT] Bump
actions/download-artifactfrom5to6(#8996) @dependabot[bot][MNT] Bump
actions/upload-artifactfrom4to5(#8995) @dependabot[bot][MNT] all-contributors update (#8998) @github-actions[bot]
[MNT] remove
pykansoft dependency fromdldepset (#9001) @fkiraly[MNT] remove
freiasoft dependency fromdldepset (#9002) @fkiraly[MNT] temporary skip of failing tests in
ClaspSegmentation(#9015) @fkiraly[MNT] add new AI
pypiclassifier topyproject.toml(#9024) @fkiraly[MNT] all-contributors update (#9029) @github-actions[bot]
[MNT] bump
prophetversefacing placeholder record version bounds toprophetverse<0.11.0(#8992) @fkiraly[MNT] isolate
peftinHFTransformersForecasterdoctest (#9035) @fkiraly[MNT] Update
pytestrequirement from<8.5,>=7.4to>=7.4,<9.1(#9054) @dependabot[bot][MNT] Bump
actions/checkoutfrom5to6(#9090) @dependabot[bot][MNT] fix
set-outputdeprecation in github-actions (#8913) @noxthot[MNT] all-contributors update (#9046) @github-actions[bot]
[MNT] all-contributors update (#9065) @github-actions[bot]
[MNT] all-contributors update (#9096) @github-actions[bot]
[MNT] 0.40.0 deprecations and change actions (#9080) @fkiraly
Fixes#
Benchmarking, Metrics, Splitters#
Data sets and data loaders#
Forecasting#
[BUG] Fix
ChronosForecasterfailure on newertransformersversions (#8877) @Sanchay117[BUG] fixed probabilistic predictions of
SkforecastRecursive(#8921) @yarnabrina[BUG] ChronosForecaster gives a “Can’t pickle” error (#8944) @JATAYU000
[BUG] Fix
ConvTimeNetForecastertest configuration paths (#8990) @fkiraly[BUG] Fix
_safe_importimport error inConvTimeNetForecaster(#9012) @jgyasu[BUG] Enable exogenous variables support in
MOIRAIForecaster(#9008) @pranavvp16[BUG] MSTL does not support a trend_forecaster that needs
fhduringfit(#8931) @Abelarm[BUG]
BaggingForecasterfailstest_update_with_exogenous_variables(#9053) @JATAYU000[BUG] Fix
ForecastingPipelineMultiIndexhandling in _transform method (#9075) @XAheli[BUG]
ESRNNForecasterfailstest_persistence_via_pickle(#8989) @JATAYU000
Time series anomalies, changepoints, segmentation#
[BUG] Fix
SubLOFmutating inputDataFramein_predict(#8873) @sanskarmodi8[BUG] fix
GreedyGaussianSegmentationpredictAPI conformance (#8967) @Astrael1
Time series classification#
[BUG] in
CNNClassifierandCNNRegressor, fix hidden layer activation function parameter passing (#8880) @noxthot[BUG] fix proximity forest random-state + pickle (#8965) @SimonBlanke
[BUG] fix
ColumnEnsembleClassifierremainderhandling (#8916) @Abelarm[BUG] Improve default
activation_hiddeninSimpleRNNClassifier,SimpleRNNRegressor&RNNNetwork(#9048) @RecreationalMath
Time series regression#
[BUG] in
CNNClassifierandCNNRegressor, fix hidden layer activation function parameter passing (#8880) @noxthot[BUG] remove
KNeighborsTimeSeriesRegressorspuriousnumbadependency tag (#9019) @fkiraly[BUG] Add missing estimator dependency checks in
BaseRegressorclass (#9018) @RecreationalMath[BUG] Improve default
activation_hiddeninSimpleRNNClassifier,SimpleRNNRegressor&RNNNetwork(#9048) @RecreationalMath
Contributors#
@Abelarm, @AdKnow, @Akai01, @alphaleporus, @AryanDhanuka10, @Astrael1, @Faakhir30, @fkiraly, @JATAYU000, @jgyasu, @leonicus, @mabuimo, @martinloretzzz, @Navya-1817, @noxthot, @omkar-334, @poopsiclepooding, @pranavvp16, @Priyanshu1303d, @RecreationalMath, @Sanchay117, @sanskarmodi8, @SimonBlanke, @swetha3456, @Tanuj-Taneja1, @XAheli, @yarnabrina
Version 0.39.0 - 2025-09-22#
Release focusing on:
python 3.9 end-of-life
changes to tag framework, testing framework
scheduled deprecations
Also includes new estimators relying on changes to tag and testing framework.
Highlights#
TiRex foundation model forecaster (#8683) @sinemkilicdere
Toto foundation model forecaster (#8708) @JATAYU000
Dataset Loader Class to load UCR UEA Datasets from
sktimehuggingfacerepo (#8786) @jgyasuDataset Loader Class to load Monash Forecasting Datasets from
sktimehuggingfacerepo (#8751) @jgyasuhyperactivebased tuners for forecasting and time series classification (#8705) @fkiraly, @SimonBlankeprophetversehierarchical forecasters updated; new configurable API, intermittent/hurdle distributions (#8792) @felipeangelimvieira, @tingiskhanConvTimeNetfor time series classification (#8761) @Tanuj-Taneja1Element-wise arithmetic operator transformer (#8711) @oresthes
Dependency changes#
python 3.9is no longer supported; minimum python version is now3.10.numbabound, where present in dependency sets, has been updated to<0.63.the following packages have been removed from dependency sets due to being unmaintained, rarely used, or subject to strict implied secondary dependency bounds:
dtaidistance,filterpy,mne,seasonal,stumpy,tbats. These dependencies are still tested in separate test VMs, and users can still use estimators depending on them by installing the packages separately, e.g., manually, or through using theregistry.depsutility.
Core interface changes#
capability tags for exogenous variables and multivariate data (
capability:exogenous,capability:multivariate) replace theignores-exogeneous-Xandunivariate-onlytags, respectively. See details below.new tags for stochasticity and determinism of estimators are introduced:
capability:random_state, a boolean tag, indicating whether the estimator has arandom_stateparameter; andproperty:randomness, a string tag with values"deterministic","stochastic", and"derandomized", indicating whether the estimator is deterministic, stochastic, or deterministic after settingrandom_state, respectively. These tags can be used for retrieval, and are also used in the test framework. Maintainers of third party estimators should set these tags appropriately, and suite tests will check whether they are correctly set. However, code will not break if these tags are not set.the default for
capability:categorical_in_Xin transformation estimators is nowTrue. This prevents blockage in composition cases where the tag is not explicitly set, e.g., using aFunctionTransformerwith a categorical compatible function in a pipeline. As this default is more permissive, user code will not break. Maintainers of third party estimators should set this tag in their transformation estimators, if they do not support categorical data inX.a new
capability:categorical_in_ytag for transformatoin estimators has been added, with a default ofTrue. This tag indicates whether the transformation estimator can handle categorical data iny. Users whose estimators can handley, but not categoricaly, should set this tag toFalse. All other estimators do not need to set this tag.
Deprecations and removals#
On-board libraries#
The
sktime.libs.pykalmanmodule is deprecated. It will redierct to thepykalmanpackage from 0.42.0 onwards, and will be removed entirely in version 1.0.0. Users ofpykalmanbased estimators insktimecan continue to use them, and the estimator API itself will not change. However, users will need to installpykalmanseparately, as it is no longer included insktime. Users of thesktime.libs.pykalmanfork should migrate their imports to thepykalmanpackage distributed via PyPI beforesktime1.0.0. Thepykalmanpackage is now maintained by thesktimeteam.
Forecasting#
EnbPIForecasterdefault bootstrap method has now changed tosktimeMovingBlockBootstrapTransformerstatsforecastestimators no longer implyscipy<1.16in thepython_dependenciestag, asstatsforecastnow supportsscipy>=1.16.
Enhancements#
BaseObject and base framework#
[ENH] replace
ignores-exogeneous-Xtag bycapability:exogenous(#8353) @fkiraly[ENH] rename
univariate-onlytag tocapability:multivariate, with boolean flip (#8818) @fkiraly[ENH] tags for stochasticity/determinism in estimators and conditional test logic (#8765) @fkiraly
[ENH] tag deprecation test extension to warn third party developers of deprecated tags (#8846) @fkiraly
[ENH] remove dead code
TagManagerthat was moved toscikit-base(#8850) @fkiraly
Benchmarking, Metrics, Splitters#
Data sets and data loaders#
Forecasting#
[ENH] TiRex foundation model forecaster (#8683) @sinemkilicdere
[ENH] skip failures of exogenous forecast tests from issue #8787 until resolved (#8803) @fkiraly
[ENH] replace
ignores-exogeneous-Xtag bycapability:exogenous(#8353) @fkiraly[ENH] Interface Toto foundation model (#8708) @JATAYU000
[ENH] allow transformer instance as deseasonalizer in
ThetaForecaster, fix test cases (#8817) @fkiraly[ENH] rename
univariate-onlytag tocapability:multivariate, with boolean flip (#8818) @fkiraly[ENH] fix
UpdateRefitsEveryandUpdateEverystream update compositors to work with newerpandasDateOffset(#8822) @fkiraly[ENH]
hyperactivebased tuners for forecasting (#8705) @fkiraly, @SimonBlanke[ENH] Update
Prophetverseversion bounds (#8792) @felipeangelimvieira
Time series anomalies, changepoints, segmentation#
Time series classification#
[ENH]
hyperactivebased tuners for time series classification (#8705) @fkiraly, @SimonBlanke[ENH]
ConvTimeNetfor time series classification (#8761) @Tanuj-Taneja1
Transformations#
[ENH] set default for
capability:categorical_in_XtoTruefor transformation estimators (#8758) @fkiraly[ENH] rename
univariate-onlytag tocapability:multivariate, with boolean flip (#8818) @fkiraly[ENH] Element-wise arithmetic operator transformer (#8711) @oresthes
[ENH] Extend
IxToXwith level selector shorthands and add unit tests (#8802) @RobKuebler[ENH] Add second test parameter set for
SAX(#8839) @piyushbiraje
Test framework#
Documentation#
[DOC] add missing docs page for
plot_critical_difference(#8757) @fkiraly[DOC] better documentation of time series scitypes, full mathematical documentation of
HierarchicalandTabletype (#8795) @fkiraly[DOC] pre-filled transformer extension template for series-to-features transformers (#8834) @fkiraly
[DOC] Update developer guide on how to run doctests (#8853) @Astrael1
Maintenance#
[MNT] Bump
actions/setup-pythonfrom5to6(#8773) @dependabot[bot][MNT] Bump
actions/setup-nodefrom4to5(#8772) @dependabot[bot][MNT] Update
pytest-randomlyrequirement from<3.17,>=3.15to>=3.15,<4.1(#8790) @dependabot[bot][MNT] remove some rare and outdated soft dependencies (#8804) @fkiraly
[MNT] remove more rare / abandoned packages from soft dependency set (#8812) @fkiraly
[MNT] 0.39.0 deprecations and change actions (#8783) @fkiraly
[MNT] Update
rufflinting target version to python 3.10, additional drops of 3.9 references (#8801) @yarnabrina[MNT] [Dependabot](deps): Update numba requirement from
<0.62to<0.63(#8821) @dependabot[bot][MNT] remove
python<3.13bound in some dependency sets fornumba(#8823) @fkiraly[MNT] deprecation of
pykalmanfork insktime(#8829) @fkiraly
Fixes#
BaseObject and base framework#
Data sets and data loaders#
Forecasting#
Time Series Anomalies, Changepoints, Segmentation#
[BUG] partially fix non-conformance of IGTS estimator (#8833) @fkiraly
Transformations#
[BUG] fix
DirectReductionForecasterfailure on newerpandas(#8782) @fkiraly[BUG] fix
MatrixProfileTypeError(#8798) @JATAYU000
Contributors#
@Astrael1, @ericjb, @felipeangelimvieira, @fkiraly, @JATAYU000, @jgyasu, @oresthes, @piyushbiraje, @RobKuebler, @SimonBlanke, @sinemkilicdere, @Tanuj-Taneja1, @tingiskhan, @yarnabrina
Version 0.38.5 - 2025-08-21#
Highlights#
Residual Boosting Forecaster, can be used to add exogenous or probabilistic capability to forecasters (#8582) @Sanchay117
TinyTimeMixerforecaster now supports exogenous data (#8709) @akshathmangudiInceptionTimeClassifiernow supports class weights (#8509) @Virgile-Foussereaupercentage forecasting metrics now allow
relative_to=y_pred(#8335) @OnePunchMonkJarque-Bera, variance break, and Ljung-Box tests/statistics (#8017) @HarshvirSandhu
Dependency changes#
temporianhas been removed from the recommendedtransformationsdependency set, as it appears to be unmaintainedesighas been removed as a soft dependencyarch(forecasting soft dependency) bounds have been updated to<7.3
Core interface changes#
Data sets and data loaders#
Most sktime dataset loaders now use huggingface datasets as a configurable
primary backend. Source files are hosted in the sktime huggingface organization.
If huggingface is not installed or available alternative backends are used, such as
direct download from UCR/UEA archive.
Time series classification#
A new tag capability:class_weight : bool has been added to indicate support for
class weights. If set, a class_weight parameter can be passed to the
constructor of classifiers with this tag, to specify class weights for training.
Enhancements#
BaseObject and base framework#
[ENH] add more common packages in standard
show_versionsreturn (#8484) @fkiraly[ENH] tests for
parallelizebackend abstraction utility (#8622) @Sanchay117
Benchmarking, Metrics, Splitters#
[ENH] change
MeanAbsolutePercentageErrorparent toBaseForecastingErrorMetric(#8632) @fkiraly[ENH]
relative_to=y_predsupport for percentage error forecasting metric classes (#8335) @OnePunchMonk[ENH] MASE efficient
_evaluate_by_index(#8611) @thearshkumar[ENH] implement efficient
_evaluate_by_indexforGeometricMeanAbsoluteError(#7095):user:KaustubhUp025, @fkiraly
Data sets and data loaders#
Forecasting#
[ENH]
LTSFNLinearForecaster,LTSFDLinearForecaster, andLTSFLinearForecasterget_test_paramsreturns two sets (#8528) @thearshkumar[ENH] Added tag to
PytorchForecastingTFTand removed fromtests/_config(#8559) @thearshkumar[ENH]
dartscompatibility patch fordarts 0.35.0and higher (#8584) @fkiraly[ENH]
patchtstdeep learning model for forecasting (#6787) @julian-fong[ENH] Residual Booster Forecaster (#8582) @Sanchay117
[ENH] split forecasting tuners module into individual files (#8418) @fkiraly
[ENH] Exogenous Handling in
TinyTimeMixerForecaster (#8709) @akshathmangudi[ENH] Minor ``statsforecast ``updates (#8692) @yarnabrina
[ENH] in-sample prediction capability for ARCH forecaster @SzymonStolarski
Parameter estimation and hypothesis testing#
[ENH] Jarque-Bera, variance break, and Ljung-Box tests/statistics (#8017) @HarshvirSandhu
Time series classification#
[ENH] ensure that any change in
classification.sklearntriggers the classification tests (#8609) @fkiraly[ENH] return histogram option in
IndividualBOSS(#8636) @Pradyumn-cloud[ENH] Move
FCNClassifiertest skip rule to estimator tag (#8603) @sinemkilicdere[ENH] Allows 1 mismatch in
RotationForesttests (#8628) @akshathmangudi[ENH] remove
esigsoft dependency and moveesigbased estimators to own test VM (#8679) @fkiraly[ENH] remove customized
attentionLSTMlayer. Replace withkerasattention (#8721) @jnrusson1[ENH] add class weight to
InceptionTimeClassifierand capabability tag (#8509) @Virgile-Foussereau[ENH] add tests for TSC
evaluateparallelization backends (#8737) @thisisrick25[ENH] improve classifier
evaluatedefaults and documentation (#8739) @fkiraly
Time series clustering#
[ENH] accept str distances in
TimeSeriesDBSCAN, allow distance parameters (#8608) @Burnie-Murray
Transformations#
[ENH] Replace deprecated
_transform_single_featurewith transform in_drcif_feature(#8599) @Anamika457[ENH] Second test parameter set for
MiniRocketMultivariate,MiniRocketMultivariateVariableandMultiRocket(#8631) @IsaiasRT[ENH] Move
WindowSummarizertest skip to estimator tag (#8671) @Pranavsingh431[ENH] remove
esigsoft dependency and moveesigbased estimators to own test VM (#8679) @fkiraly
Test framework#
[ENH] Added tag to
PytorchForecastingTFTand removed fromtests/_config(#8559) @thearshkumar[ENH] tests for
parallelizebackend abstraction utility (#8622) @Sanchay117
Documentation#
[DOC] improve formatting and clarity in
python_dependenciestag description (#8517) @fkiraly[DOC] Add guide for module-level soft dependency imports (#7690) (#8386):user:fkiraly, @aarsh1a
[DOC] fix import location of
_safe_importin developer guide (#8577) @fkiraly[DOC] correct private docstrings for forecasting metrics (#8644) @fkiraly
[DOC] fix some broken links on the “decision making” page (#8583) @fkiraly
[DOC] add GC.OS donation mechanism to
FUNDING.yml(#8623) @fkiraly[DOC] Add
plot_windowsto API documentation (#8286) @aarushitandon0[DOC] correct and improve
_percentage_errordocstring and related docstrings (#8640) @fkiraly[DOC] add links from estimator type specific API reference to subsection of tags API reference (#8637) @fkiraly
[DOC] improved formatting and clarity in docstrings of forecasting metrics (#8633) @fkiraly
[DOC] Level 2 page-toc (#8657) @thearshkumar
[DOC] add
ResidualBoostingForecasterto the API reference (#8675) @fkiraly[DOC] Add
ClassificationBenchmarkto API Reference (#8676) @jgyasu[DOC] math formula and
evaluate_by_indexexplanation forMeanLinexError(#8627) @sinemkilicdere[DOC] improved docstrings for forecasting performance metrics (#8682) @fkiraly
[DOC] Corrected typos in
examples/02 classification.ipynb(#8689) @hudeqiWH[DOC] minor formatting improvement in dependency handling guide (#8720) @fkiraly
[DOC] various minor docstring formatting fixes (#8669) @fkiraly
Maintenance#
[MNT] separate dependency set for notebooks, reduce dependencies in notebook CI (#8598) @fkiraly
[MNT] update notebook CI python version to 3.11 (#8604) @fkiraly
[MNT] remove unmaintained (?) package
temporianfrom recommendedtransformationsdepset (#8485) @fkiraly[MNT] reorder CI steps to minimize expected runtime (#8557) @fkiraly
[MNT] Update
pytest-xdistrequirement from<3.8,>=3.3to>=3.3,<3.9(#8470) @dependabot[bot][MNT] granular test runs in CI in single-estimator VM (#8647) @fkiraly
[MNT] Fix
shellcheckline ending issues on Windows (#8502) @XAheli[MNT] Bump
actions/download-artifactfrom4to5(#8668) @dependabot[bot][MNT] CI: change
macos-13runners tomacos-latest, of arm64 Architecture (#7715) @abhishek-iitmadras[MNT] partial revert of #7715 for
test-cython-estimatorsjob. (#8680) @fkiraly[MNT] Bump
actions/checkoutfrom4to5(#8687) @dependabot[bot][MNT] pre-commit autoupdate (#8694) @yarnabrina
[MNT] Check versions in wheels workflow (#8718) @szepeviktor
[MNT] Exclude Python 3.13 + macos-13 combo from CI to fix torch issue (#8127) (#8304) @adityagarwal15
[MNT] remove
requires_cythontag and separate VM handling in favour oftests:vm(#8674) @fkiraly[MNT] Improved changelog generator to sort by subsection (#8132) @Mujeeb4
[MNT] improved changelog generator: group PRs by module labels like Forecasting and Classification (#8579) @sinemkilicdere
[MNT] Update test_vms to use
macos-latestin CI and configure osx setup in github scripts to dynamically install dependencies (#8624) @julian-fong[MNT] Upgrade CI to set
test-fullto usemacos-latestrunners (#8670) @julian-fong[MNT] Turn off
mpsfor macos runners ontests:vmestimators and fixesmomentfmCI failures (#8642) @julian-fong
Fixes#
BaseObject and base framework#
Benchmarking, Metrics, Splitters#
Forecasting#
[BUG] Fix the predictions from the
ARCHmodel implementation (#8610) @SzymonStolarski[BUG] RRF sometimes creates the wrong PeriodIndex when the frequency is higher than 1 (#8606) @LHoelper
[ENH] Add full exogenous variable support for statsmodels adapter _update() method when update_params=False (#8626) @Alexis-Fauxbaton
[BUG] Fix failing tests for pytorch forecasting models. (#7844) @Sohaib-Ahmed21
[BUG] suppressing
dictwhile running TTM doctest (#8738) @akshathmangudi
Time series anomalies, changepoints, segmentation#
[BUG] fix
np.ndarrayincompatibility inBaseDetector.fit_transform(#8329) @Imvedansh[BUG] Fix missing input conversion in
BaseDetector(#8328) @Rajdeep-naha
Time series classification#
[BUG] decouple classifier, clusterer, regressor extension contract from
n_jobsparameter (#8549) @fkiraly[BUG] CNTCClassifier throws error when you provide callbacks. (#8660) @garar
[BUG] fix
backendandbackend_paramsin TSCevaluatebeing ignored (#8702) @fkiraly[BUG] fix parallelization and pickling in TSC
evaluate(#8741) @fkiraly
Time series clustering#
Time series regression#
Contributors#
@aarsh1a, @aarushitandon0, @abhishek-iitmadras, @adityagarwal15, @akshathmangudi, @Alexis-Fauxbaton, @Anamika457, @Burnie-Murray, @fkiraly, @garar, @HarshvirSandhu, @hudeqiWH, @Imvedansh, @IsaiasRT, @jgyasu, @jnrusson1, @julian-fong, @LHoelper, @Mujeeb4, @OnePunchMonk, @Pradyumn-cloud, @Pranavsingh431, @Rajdeep-naha, @Sanchay117, @sinemkilicdere, @Sohaib-Ahmed21, @szepeviktor, @SzymonStolarski, @thearshkumar, @thisisrick25, @Virgile-Foussereau, @XAheli, @yarnabrina
Version 0.38.4 - 2025-07-17#
Release focusing on bugfixes and scikit-learn downwards compatibility after 1.7.0
and increasing test framework reliability.
Enhancements#
Forecasting#
Time series classification#
Test framework#
[ENH] move test skips to estimators for estimators with their own VM (#8514) @fkiraly
[ENH]
tests:libstag to specify library dependencies of estimators for differential testing (#8513) @fkiraly[ENH]
scikit-learnandpandasdownwards compatibility patch (#8552) @fkiraly[ENH] loosen condition for
skprodependency exception inBaseForecaster.predict_proba(#8554) @fkiraly[ENH] add conditional testing to
transformations.hierarchical.reconcilemodule (#8494) @fkiraly[ENH] Move test skip config of
TapNetClassifierfromtests._configto estimator tags (#8516) @xenonnn4w[ENH] Move test skip config of
CNTCRegressorfromtests._configto estimator tags (#8527) @Ghxst07[ENH] Moved test skip config of
DistanceFeaturesfromtests._configto estimator tags (#8520) @IsaiasRT[ENH] Moved test skip config of
ResNetClassifierfromtests._configto estimator tags (#8564) @Burnie-Murray
Documentation#
[DOC] Notebook Demonstrating Benchmarking of Classifiers (#8373) @jgyasu
[DOC] Correct note about unequal-length time series support in
sktime(#8510) @jgyasu[DOC] Update the broken
all-contributors.orgwebsite link to the correct GitHub repository URL (#8539) @Tirath5504[DOC] Note about package names in
_check_soft_dependencies(#8529) @jgyasu[DOC] fix broken API reference of
ColumnSelectandIndexSubset(#8504) @fkiraly[DOC] A typo in
test_all_estimators(#8534) @phoeenniixx
Maintenance#
[MNT] do not trigger VM tests for non-core estimators on framework changes (#8497) @fkiraly
[MNT] CI steps to test by estimator with estimator specific dependencies, controlled by tag for separate VM (#7087) @fkiraly, @julianfong
[MNT] fix two instances of empty strategy in GHA (#8500) @fkiraly
[MNT] [Dependabot](deps): Bump
actions/setup-pythonfrom4to5(#8507) @dependabot[bot][MNT] full test run on mid-to-lower dependency version range, 2023 state of core deps (#4016) @fkiraly
[MNT] replace
dorny/paths-filterthird party action withgit diffcall indetect-package-change(#8556) @fkiraly
Fixes#
BaseObject and base framework#
Forecasting#
[BUG] Fix
TimesFM_safe_import(#8511) @thearshkumar
Test framework#
Contributors#
@Burnie-Murray, @ericjb, @fkiraly, @Ghxst07, @IsaiasRT, @jgyasu, @julianfong, @phoeenniixx, @thearshkumar, @Tirath5504, @xenonnn4w
Version 0.38.3 - 2025-07-04#
Hotfix for failures of ChronosForecaster and TinyTimeMixerForecaster.
Contents#
Version 0.38.2 - 2025-07-03#
transformers 4.53 compatibility patch, minor maintenance and documentation updates.
Contents#
[MNT] CI:
Add ubuntu-22.04-armrunners to enhance arm aarch64 architecture testing and maintenance (#7695) @abhishek-iitmadras[MNT] fix: add
aarch64installation constraint foresigandts2vg(#8471) @abhishek-iitmadras[MNT] Skip mlflow test jobs if
sktimefolder orpyproject.tomlis untouched (#8474) @yarnabrina[MNT] replace unsafe imports from
torchandtransformerswith_safe_importpattern (#8476) @fkiraly[MNT] update
transformersimports for 4.53 compatibility (#8478) @fkiraly[DOC] use clearer language in extension template preamble (#8466) @fkiraly
[DOC] add missing API reference for
GreykiteForecaster(#8472) @fkiraly
Contributors#
Version 0.38.1 - 2025-06-26#
scikit-learn 1.7 compatibility hotfix, thanks go to @andretheronsa.
Contents#
[BUG] fix forecasting metric functions incompatible with
scikit-learn 1.7(#8459) @andretheronsa[MNT] revert docs to pre-8385 state (#8454, #8444) @fkiraly, @yarnabrina
Contributors#
Version 0.38.0 - 2025-06-24#
Maintenance release with scheduled deprecations and change actions.
For the last non-maintenance content update, see 0.37.1.
Dependency changes#
numpy(core dependency) bounds have been updated to<2.4pandas(core dependency) bounds have been updated to<2.4scikit-learn(core dependency) bounds have been updated to<1.8scipy(core dependency) bounds have been updated to<1.17
Deprecations and removals#
Benchmarking, Metrics, Splitters#
deprecated methods from
BaseBenchmarkhave been removedforecasting_validationutility has been removed - users should callForecastingBenchmarkinstead
Data sets and data loaders#
unused copies datasets have been removed from
sktime.datasets.data. Users should replace any direct read of data files insktime.datasets.datawith loading via dataset classes or loader functions. For example, readingArrowHead_TRAIN.tsvshould be replaced by callingloadfromsktime.datasets.classification.ArrowHead.
Forecasting#
removed: the
probamodule has been removed fromsktime. Users should replace imports fromsktime.probawith imports fromskpro.distributions, in theskpropackage.
Maintenance#
Documentation#
[DOC] Add new reconcilers to API reference (#8440) @felipeangelimvieira
Fixes#
[BUG] Documentation
conf.pyis missing mandatory extensions (#8435) @felipeangelimvieira[BUG] fix sphinx changelog link generation and panel overview (#8432) @fkiraly
Contributors#
Version 0.37.1 - 2025-06-22#
Highlights#
new reconciler module, new non-negative reconciliation (#7697) @felipeangelimvieira
ClassificationBenchmarkandevaluateutility for benchmarking time series classifiers (#8267, #8357) @ksharma6, @jgyasumomentfmfoundation model forecaster (#6570) @julian-fongmomentfmfoundation model time series classifier (#8263) @julian-fongForecastKnownValuescan now handle multi-index prescribed forecasts (#8236) @RobKueblerforecast
evaluateutility can now handle temporal and global splits (#8064) @benHeidSkforecastRecursivenow supports in-samplepredict_quantiles(#8255) @nahcol10
Dependency changes#
optuna(tuning soft dependency) bounds have been updated to<4.5
Enhancements#
BaseObject and base framework#
Benchmarking, Metrics, Splitters#
[ENH] Add temporal global split to forecast
evaluateutility (#8064) @benHeid[ENH] make
numpyoutput coercions consistent in metrics and distances (#8194) @fkiraly[ENH] Visualisation utility for global splits (#8204) @benHeid
[ENH] Add
relative_toparameter to percentage error metrics to enable relative-by-prediction metrics - part 1, functions (#8266) @OmBiradar[ENH] refactor forecasting metrics into individual private submodules (#8279) @fkiraly
[ENH] enforce
MeanSquaredErrorPercentageto be positive (#8318) @fkiraly
Data sets and data loaders#
Data types, checks, conversions#
[ENH] Add
is_hierarchicalmethod to check whether a dataframe is hierarchical (#8170) @gbilleyPeco
Documentation build#
[ENH] Speed up docs building and minor docs fixes (#8385) @mateuszkasprowicz
Forecasting#
[ENH] interfacing
momentfmforecaster as a deep learning module (#6570) @julian-fong[ENH] make
ForecastKnownValuesmultiindex-ready (#8236) @RobKuebler[ENH] Add regularization hyperparameter in
ReconcilerForecaster(#7660) @HarshvirSandhu[ENH]
Greykiteforecaster integration (#7902) @vedantag17[ENH] change forecaster default tag value of capability:categorical_in_X to True to enable composition case (#8231) @fkiraly
[ENH]
SkforecastRecursive- support in-samplepredict_quantiles(#8255) @nahcol10[ENH] enable univariate mode for
DynamicFactorforecaster (#8345) @fkiraly[ENH] minor improvements to
MultiplexForecaster(#8422) @fkiraly
MLOps & Deployment#
[ENH] Fix MLflow 3.0 compatibility while maintaining 2.x support (#8395) @amanmogal
Time series anomalies, changepoints, segmentation#
Time series classification#
[ENH] Extending categorical framework support in
Xto time series classifiers (#8114) @Ankit-1204[ENH] Make grid search parameters in
ShapeDTWconfigurable to enable faster testing (#8324) @benHeid[ENH]
momentfmclassifier (#8263) @julian-fong[ENH]
evaluatefor TSC and TSR (#8267, #6888) @jgyasu, @ksharma6[ENH] Second Set of Test Parameters
TimeSeriesForest(#8337) @nmwitzig[ENH] Add
predict_probatag for classifier to estimator overview table (#8344) @jgyasu[ENH] Add parallelization support for TSC
evaluate(#8347) @jgyasu[ENH]
ClassificationBenchmarkfor benchmarking time series classifiers (#8357) @jgyasu[ENH] Tests for TSC
evaluateParallel Backend (#8359) @jgyasu
Time series distances and kernels#
Time series regression#
Transformations#
[ENH] Enable
EnbPIForecasterto work withsktimenative bootstrap algorithms (#7562) @benHeid[ENH] Simplify
HampelFiltercode and add a unit test (#8249) @RobKuebler[ENH] Add missing space to
Pipelineconstructor warning (#8275) @yury-fedotov[ENH] Implement reconcilers as transformations, and add new non-negative reconciliation (#7697) @felipeangelimvieira
[ENH] faster
MovingBlockBootstrapTransformertests, improved docstring (#8420) @fkiraly
Test Framework#
[ENH] refactor test flag logic to
tests._config(#8000) @fkiraly[ENH] test framework: “core classes” and non-core classes with different test trigger conditions (#8408) @fkiraly
[ENH] core dependency changes also trigger estimator tests (#8415) @fkiraly
[ENH] remove some unstable and long running estimators from the core testing set (#8421) @fkiraly
Documentation#
[DOC] mathematical reference for probabilistic forecasting metrics (#8213) @fkiraly
[DOC] add missing imports in
fracdiffdocstrings (#8317) @fkiraly[DOC] fix broken docstring of
KNeighborsTimeSeriesClassifierTslearn(#8341) @fkiraly[DOC] mathematical formulae for MASE and MedASE (#8339) @piyushbiraje
[DOC] Add reference to the updated roadmap page in
contributing.rst(#8350) @jgyasu[DOC] fix
KNeighborsTimeSeriesClassifierTslearndocstring (#8410) @fkiraly[DOC] Fix citation formatting in
lower_bounding.pyto resolve doc warnings (#8389) @mohamed-halemo[DOC] Fix failing doctest in
ARLagOrderSelectorexample (#8407) @andoriyaprashant[DOC] fix
MomentFMClassifierdocstring example (#8419) @fkiraly[DOC] Improves documentation in
Testing and continuous integrationwebpage (#8247) @julian-fong[DOC] Fix Docstring Example of Distance Based Classifiers (#8313) @jgyasu
[DOC] Update
utils.rstAPI reference to addplot_windows(#7993) @Prahitha[DOC] Fix documentation typos throughout the code base5 (#8301) @szepeviktor
Maintenance#
[MNT] remove soft dependency from
ForecastingOptunaSearchCVdocstring example (#8202) @fkiraly[MNT] fix
apply_splitdoctest and skipSARIMAXfailures (#8220) @fkiraly[MNT] remove
stefanzweifel/git-auto-commit-actionfromall-contributorsworkflow (#8369) @fkiraly[MNT] add
scipy<1.16bound tostatsforecastandpmdarimabased forecasters (#8427) @fkiraly[MNT] [Dependabot](deps): Update
pytest-timeoutrequirement from<2.4,>=2.1to>=2.1,<2.5(#8242) @dependabot[bot][MNT] [Dependabot](deps): Update
pytest-xdistrequirement from<3.7,>=3.3to>=3.3,<3.8(#8303) @dependabot[bot][MNT] [Dependabot](deps): Update
pytestrequirement from<8.4,>=7.4to>=7.4,<8.5(#8338) @dependabot[bot][MNT] [Dependabot](deps): Update
pytorch-forecastingrequirement from<1.4.0,>=1.0.0to>=1.0.0,<1.5.0(#8399) @dependabot[bot][MNT] [Dependabot](deps): Update
optunarequirement from<4.3to<4.4(#8197) @dependabot[bot][MNT] [Dependabot](deps): Update
optunarequirement from<4.4to<4.5(#8400) @dependabot[bot]
Fixes#
BaseObject and base framework#
Benchmarking, Metrics, Splitters#
Forecasting#
[BUG] Fix aggregation function assignment in
EnbPIclass (#8230) @marrov[BUG] fix pandas future warning in
pytorch-forecastingadapter due to in-place modification of a copy (#8269) @jobs-git[BUG] fix: use names keyword instead of name (#8257) @RobKuebler
[BUG] fix wrong return of fit in doc tests of
MoiraiForecasterandTimeLLM(#8326) @benHeid[BUG] fix incorrect scitype inference in forecasting pipelines for polymorphic forecasters (#8237) @nahcol10
Time series alignment#
[BUG] Fixed
AlignerDTWwhenwindow_sizeneeds to be passed givenwindow_type(#8124) @OmBiradar
Time series classification#
[BUG] fix
RotationForestfor a custombase_estimator(#8270) @fkiraly[BUG] reindex features in
TSFreshClassifier.predict_probato match training columns (#8285) @Pranavsingh431
Transformations#
[BUG] Fix
Aggregatorinverse_transformbeing skipped (#8358) @felipeangelimvieira
Test framework#
[BUG] fix accidental failure in fixture generating utility
_get_parallel_test_fixtures, (#8193) @fkiraly[BUG] fix differential testing logic for
DateTimeFeaturesspecific test (#8293) @andoriyaprashant
Contributors#
@amanmogal, @andoriyaprashant, @Ankit-1204, @benHeid, @felipeangelimvieira, @fkiraly, @gbilleyPeco, @HarshvirSandhu, @jgyasu, @jobs-git, @julian-fong, @ksharma6, @marrov, @mateuszkasprowicz, @mohamed-halemo, @nahcol10, @nmwitzig, @OmBiradar, @pcpp94, @piyushbiraje, @Prahitha, @Pranavsingh431, @RobKuebler, @szepeviktor, @Tveten, @vedantag17, @yury-fedotov
Version 0.37.0 - 2025-04-12#
Maintenance release with scheduled deprecations and change actions.
For the last non-maintenance content update, see 0.36.1.
Dependency changes#
keras-self-attention(deep learning soft dependency) is no longer a soft dependency. The package has been abandoned and is now vendored insktime.
Core interface changes#
Forecasting and transformation pipelines can now be built with an scikit-learn
estimator directly, without needing to wrap in TabularToSeriesAdaptor.
The behaviour is the same as before, but the TabularToSeriesAdaptor is now optional.
Deprecations and removals#
Forecasting#
deprecated: the
handles-missing-datatag is deprecated and renamed tocapability:missing_values, to be consistent with other estimator types. The old tag namehandles-missing-datacan be used until 1.0.0, when it will be removed, but will raise a deprecation warning.removed: the deprecated
HierarchyEnsembleForecaster.fitted_listparameter has been removed. Users should useget_fitted_paramsorforecasters_instead.
Time Series Anomalies, Changepoints, Segmentation#
removed: the deprecated
annotationmodule has been removed. Users should replace imports fromsktime.annotationwith imports fromsktime.detection.removed: the deprecated
Yargument in detector methods has been removed. Instead, users should use theyargument.
Enhancements#
BaseObject and base framework#
Data types, checks, conversions#
Forecasting#
Transformations#
Maintenance#
[MNT]
0.37.0deprecations and change actions (#8148) @fkiraly[MNT] docstring example fixes and test skips (#8159) @fkiraly
[MNT] remove
tsbootstrapsoft dependency fromall_extras_pandas2dependency set (#8174) @fkiraly[MNT] vendor abandoned
keras-self-attentionlibrary (#8155) @fkiraly[MNT] skip tests with
rayparallelization fixtures (#8188) @fkiraly[MNT] skip
VECMdoctest due topandas 1incompatibility (#8187) @fkiraly
Fixes#
Contributors#
Version 0.36.1 - 2025-04-04#
Highlights#
TimeMoEforecaster (#7869) @PranavBhatPsupport for
chronos-boltinChronosForecaster(#7718) @PranavBhatPsimdkalman-based Kalman filter transformers (#8030) @oseiskarHierarchyEnsembleForecastercan now select different parallelization backends (#7954) @LHolperADIDAintermittency forecaster fromstatsforecast(#7754) @vedantag17SeasonalDummies- one hot encoding for seasonal categorical variable transformer (#7915) @ericjb
Dependency changes#
tensorflow(deep learning soft dependency) bounds have been updated to<2.20dask(data container and parallelization back-end soft dependency) bounds have been updated to<2025.2.1,>2024.8.2rayis now a soft dependency (parallelization back-end)
Core interface changes#
- all native parallelization locations now accept
"ray"as a parallelization backend, for example forecasting parameter tuning, or hierarchical parallelization via
set_config
- all native parallelization locations now accept
ForecastingBenchmarkhas been reworked:accepts
sktime-in-memory data formats and dataset loadersprovides different handlers for benchmarking outputs, including
json,csv, andparquet.supports global forecasters
Enhancements#
BaseObject and base framework#
[ENH] Add utility
_safe_importfor programmatic soft dependency isolation (#7702) @jgyasu[ENH] private utilities for safe argument passing to function with unknown signature (#7766) @fkiraly
[ENH] extend
_check_soft_dependenciesto allow dependency disjunctions (#7943) @fkiraly[ENH] refactor
scitypedetection logic and meta-estimator clone logic to includesklearnestimator types (#8131) @fkiraly
Benchmarking, Metrics, Splitters#
[ENH] Extend forecasting benchmark to global setting (#6774) @XinyuWuu
[ENH] Add error handling to
cINNForecaster’sCurveFitForecaster(#7602) @Utkarsh-Aggarwal[ENH] Revision Forecasting Benchmarking Module (#7603) @benHeid
[ENH] Extend benchmarking to accept sktime-in-memory data formats (#5055) @hazrulakmal
[ENH] benchmarking: make write to
csvfile optional (#7850) @fkiraly[ENH] speed up forecasting
evaluatebenchmark input checks (#7899) @fkiraly[ENH] coerce scalar forecasting metric outputs to
float(#8074) @fkiraly[ENH] Ensure Forecasting Metrics Return
np.float64(#8099) @amitsubhashchejara
Data sets and data loaders#
[ENH] Data loader functions for datasets to return
ywith numericdtype(#7588) @vedantag17
Forecasting#
[ENH]
STLForecaster- added methodplot_components(#6423) @ericjb[ENH]
ADIDAintermittency forecaster fromstatsforecast(#7754) @vedantag17[ENH] add clusterer use to
GroupByCategoryForecasterand docstrings (#7782) @fkiraly[ENH] Implement support for
chronos-boltinChronosForecaster(#7718) @PranavBhatP[ENH]
HierarchyEnsembleForecasterparallelization backends (#7954) @LHoelper[ENH] improve methodology test coverage for
DirectReductionForecasterandRecursiveReductionForecaster(#7770) @PranavBhatP[ENH] reducer - minor code clarity refactor (#7556) @fkiraly
[ENH] add
fit_strategyforTinyTimeMixerForecaster(#7648) @Sohaib-Ahmed21[ENH] Enable the HF Transformers Forecaster to pass model as object (#7689) @Spinachboul
[ENH] ES-RNN Forecaster (#7772) @Ankit-1204
[ENH] move naive forecasters to separate folder (#8067) @fkiraly
[ENH]
TimeMoEforecaster (vendored) (#7869) @PranavBhatP
Parameter estimation#
Registry and search#
Test Framework#
[ENH] Test case to ensure an
AssertionErroris thrown ifEXCLUDED_TESTS_BY_TESTis not updated (#7622) @satvshr[ENH] fix
test_excluded_tests_by_testforHFTransformersForecaster(#7882) @fkiraly[ENH] improve condition and error message in
test_excluded_tests_by_test(#7904) @fkiraly[ENH] trigger differential tests if core framework modules change (#7923) @fkiraly
[ENH] add some missing differential test skips (#8004) @fkiraly
[ENH]
check_estimatorverbose output on passed and failed tests ifraise_exceptions=True(#8047) @fkiraly[ENH] handle
BaseForecaster.predict_probaskprodependency inTestAllEstimators(#8023) @fkiraly[ENH] Relax Panel-To-Panel transformations to allow changing the number of instances (#7991) @felipeangelimvieira
[ENH] catch
test_fit_idempotentpredict_probasoft dependency error (#8076) @fkiraly
Time Series Anomalies, Changepoints, Segmentation#
[ENH] Time Series AUPRC Anomaly detection metric based on QuoVadisTAD (#7729) @Ankit-1024
Transformations#
[ENH] param sets for
MiniRocket(#7814) @Bergschaf[ENH] added test parameters to
Rocketestimator (#7813) @fkiraly[ENH] Adds Seasonal dummies features via a transformer
SeasonalDummies(one hot encoding for seasonal categorical variable) (#7915) @ericjb[ENH] Use
RBFLayerto do the transformations inRBFTransformerand moveRBFLayerandRBFNetworktonetworks(#7730) @phoeenniixx[ENH] Use valid covariance matrices in Kalman filter unit tests (#8029) @oseiskar
[ENH] move Kalman filter transformers into folder module (#8066) @fkiraly
[ENH] Add
simdkalman-based Series and Panel transformers (#8030) @oseiskar[ENH] Allow
Mergerto work on hierarchical inputs (#8071) @wilsbj
Documentation#
[DOC] minor fixes to data types documentation (#7777) @fkiraly
[DOC] fix link to developer guide in new contributor instructions (#7842) @fkiraly, @yarnabrina
[DOC] update enbpi docstrings (#7835) @Spinachboul
[DOC] Creating template for performance metrics for detection (#7740) @Ankit-1204
[DOC]
FCNClassifier- add Wang et al reference (#7884) @itsbharatj[DOC] added docstring to the
HierarchicalDaskclass (#7684) @TomatoChocolate12[DOC] clarify assumptions on function
funinutils.parallel.parallelize(#7823) @fkiraly[DOC] Added example for
AlignerNaiveandAlignerLuckyDtw(#7795) @haroon0x[DOC] improved API reference for
python_dependenciestag (#8022) @fkiraly[DOC] add clear reference to
ReconcilerForecasterinReconcilerdocumentation (#8045) @fkiraly[DOC] remove some failing docstring examples (#8121) @fkiraly
Maintenance#
[MNT] Removes
MiniRocketfromEXCLUDED_TESTS_BY_TESTlist to fix CI failures (#7860) @satvshr[MNT] Add LLM prompt to template (#7851) @felipeangelimvieira
[MNT] Avoid skipping of unit tests of several forecasters (#7826) @yarnabrina
[MNT] temporary skip of
MACNNClassifierfailing tests (#7959) @fkiraly[MNT] temporary skip of
MCDCNNClassifierfailing tests (#7960) @fkiraly[MNT] temporary skip of
VARMAXtests due to timeout (#7986) @fkiraly[MNT] isolate
pykanimports inside estimator (#6885) @fkiraly[MNT] temporary skip of
pytorch-forecastingtests until resolution of #7997 (#7998) @fkiraly[MNT] Updating pre-commit hooks and running all hooks on all files (#7996) @yarnabrina
[MNT] For
TSFreshFeatureExtractorremove upper bound ofscipyset lower fortsfresh(#7847) @benHeid[MNT] Update
pyproject.tomlto install tensorflow up until python 3.12 (#7865) @Reckadon[MNT] remove
numpy 2dependency handler fromBaseObject(#7955) @fkiraly[MNT] address
numpyarray assignment deprecation (#7919) @fkiraly[MNT] address some
pandasdeprecation warnings (#7866) @fkiraly[MNT] temporary skip for
DistanceFeaturesuntil fix of known failures (#8078) @fkiraly[MNT] temporary skip for
TimeSeriesKvisibilityuntil fix of known failures (#8079) @fkiraly[MNT] Removes
MiniRocketfromEXCLUDED_TESTS_BY_TESTlist to fix CI failures (#7860) @satvshr[MNT] temporary skip of
pytorch-forecastingtests until resolution of #7997 (#7998) @fkiraly[MNT] Temporarily remove
RecursiveReductionForecasterfrom unit tests (#8081) @felipeangelimvieira[MNT] skip early classifier
TEASERintest_multiprocessing_idempotent(#8085) @fkiraly[MNT] skip
test_transformation_can_return_new_instancesuntil resolution of #8084 (#8086) @fkiraly[MNT] remove
daskfrom 3.13 dep sets due to failure of dependency resolution (#8101) @fkiraly[MNT] Remove debugging line from test_check_estimator (#8104) @felipeangelimvieira
[MNT] update
PyKANForecasterdependency set (#8109) @fkiraly[MNT] remove
CNTCRegressorparameter test skip (#8122) @fkiraly[MNT] prevent
torchinstallation onpython 3.13and macos (#8143) @fkiraly[MNT] update
daskversion todask<2025.2.1,>2024.8.2(#8083) @fkiraly[MNT] [Dependabot](deps): Update
sphinx-galleryrequirement from<0.19.0to<0.20.0(#7819) @dependabot[bot][MNT] [Dependabot](deps): Update
daskrequirement from<2024.8.1to<2025.2.1(#7857) @dependabot[bot]
Fixes#
BaseObject and base framework#
Data sets and data loaders#
Data Types, Checks, Conversions#
Forecasting#
[BUG] fix (str, forecaster, count) parametrization for
EnsembleForecaster(#7785) @fkiraly[BUG] fix
statsmodelsadapter variable name forpd.Series(#7832) @fkiraly[BUG]
test_get_test_params_coveragethrows an error when all tests are triggered (#7878) @satvshr[BUG] Fix
RecursiveReductionForecasterfailingtest_hierarchical_with_exogeneous(#7927) @felipeangelimvieira[BUG] hack-fix for round trip conversions of
pandastime series (#7925) @fkiraly[BUG] ensure
statsforecastadapter keeps track of trained forecaster (#7983) @yarnabrina[BUG] Fix
HierarchyEnsembleForecastertest failure (#7992) @wilsbj[BUG] fix
_HeterogenousEnsembleForecasterparameter inspection (#7984) @fkiraly[BUG] fix
_HeterogenousMetaForecasterhandling offorecasters_(#8020) @fkiraly[BUG] Use
_DelegatedForecasterinHierarchicalProphet, add upper bound toprophetverseversion (#7980) @felipeangelimvieira[BUG] MAPA forecaster - missing clone, using exogenous data (#7872) @satvshr
[BUG] fix timestamp format change in
fh.to_absolute(#7914, #8110) @XinyuWuu
Parameter estimation#
Test Framework#
[BUG] fix failing
TestAllForecasterstest collection due topytestinheritance bug (#7789) @yarnabrina[BUG] fix
check_estimatorintegration forTestAllGlobalForecasters(#7800) @fkiraly, @sohaib-ahmed21[BUG] in tests, handle soft dependency in
BaseForecaster.predict_probaonskpro(#7981) @fkiraly[BUG] Testing util
retrieve_scenarios shouldselect scenarios for forecasters, clusterers, and classifiers (#7971) @wilsbj[BUG] catch
test_fit_idempotentpredict_probasoft dependency error - secondary fix (#8080) @fkiraly[BUG] ensure
test_doctest_exampleschecks doctests correctly (#8065) @fkiraly
Time Series Anomalies, Changepoints, Segmentation#
Time Series Classification#
Time Series Clustering#
Time Series Regression#
Transformations#
[BUG]
sklearn 1.6.Xcompatibility forTabularToSeriesAdaptor- handlestatelesstag byrequires_fitinadapt.py(#7845) @benHeid[BUG] Fix infinite recursion in
_SuppressWarningPatternandLossySetitemErrorinSummaryTransformer(#7903) @celestinoxp[BUG] fix
Series-to-Primitivestransformer output index for hierarchical data (#8037) @fkiraly[BUG] Handle hierarchical mtype in
ClustererAsTransformer(#8013) @felipeangelimvieira[BUG] Hierarchical data passed to
ClustererAsTransformerfails (#8053) @wilsbj[BUG] fix expected output length tests for hierarchical transformations (#8069) @fkiraly
[BUG] Make
_TransformChangeNInstancescapable of handling hierarchical test scenarios (#8092) @felipeangelimvieira[BUG] Handle hierarchical input types in
ColumnConcatenatorcorrectly (#8070) @wilsbj
On-board library: vmdpy#
[BUG] Fix VMD odd length data returns even length decomposition (#8094) @danferns, @LorchZachery
Contributors#
@amitsubhashchejara, @Ankit-1204, @benHeid, @Bergschaf, @celestinoxp, @danferns, @ericjb, @felipeangelimvieira, @fkiraly, @geetu040, @haroon0x, @hazrulakmal, @itsbharatj, @jgyasu, @LHoelper, @LorchZachery, @oseiskar, @phoeenniixx, @PranavBhatP, @Reckadon, @satvshr, @Sohaib-Ahmed21, @Spinachboul, @tapyu, @TomatoChocolate12, @Utkarsh-Aggarwal, @vedantag17, @wilsbj, @XinyuWuu, @yarnabrina
Version 0.36.0 - 2025-02-03#
Maintenance release with scheduled updates to version bounds.
For the last non-maintenance content update, see 0.35.1.
Dependency changes#
numpy(core dependency) bounds have been updated to<2.3.0scikit-learn(core dependency) bounds have been updated to<1.7.0
Contents#
[ENH]
sklearn 1.6.Xcompatibility patch (#7751, #7755) @fkiraly[MNT] [Dependabot](deps): Update
numpyrequirement from<2.2,>=1.21to>=1.21,<2.(#7675, #7747) @dependabot[bot][MNT] fix some faulty instances of dependency handling (#7760) @fkiraly
[BUG] fix
BaseDatatype.__call__dispatching to private, not public method (#7748) @fkiraly
Version 0.35.1 - 2025-02-02#
Highlights#
Forecasting metrics
__call__can be passedby_indexto return per-index metricevaluate_by_index(#7608) @benHeidMAPA forecaster (#7620) @phoeenniixx
Interface to
skforecast.recursive.ForecasterRecursive(#7554) @yarnabrinaNative reducers (2nd generation) now support arbitrary imputation strategies (#7535, #7646) @lenaklosik
New detection metrics: RAND Index, windowed F1-score (#7533, #7628) @gavinkatz001
forecasting
evaluatenow allows returning fitted estimators viareturn_modelparameter (#7637) @marrovTags and object API for Datasets (#7398) @felipeangelimvieira
Interface to
statmodelsar_select_orderfor lag order estimation (#7693) @satvshr
Dependency changes#
skpro(probability distributions soft dependency) bounds have been updated to>=2,<2.10.0numba(computation soft dependency) bounds have been updated to<0.62optuna(hyperparameter optimization soft dependency) bounds have been updated to<4.3pykan(forecasting soft dependency) bounds have been updated to>=0.2.1,<0.2.9dask(data container and parallelization back-end soft dependency) bounds have been updated to<2025.1.1
Core interface changes#
Data sets and data loaders#
a unified API has been introduced for data sets and data loaders,
following the scikit-base pattern.
A unified load method is now available for all data loaders,
with further unified API points such as keys and tags for retrieval.
For further details, see Datasets reference.
Forecasting#
All Forecasting metrics can now be constructed with a
by_index=Trueargument.
This will result in a direct call returning the metric per time index.
This is equivalent to a call of the evaluate_by_index method.
by_index=False is the default, and dispatches, as currently, to the evaluate
method of the metric.
Deprecations and removals#
In HierarchyEnsembleForecaster, the fitted_list attribute is deprecated.
To access the fitted estimators, users should use instead either the get_fitted_params method,
or the attribute forecasters_.
Given a fitted instance f, a deprecated read call to f.fitted_list can be replaced
by f.get_fitted_params()['forecasters'] or f.forecasters_.
Enhancements#
BaseObject and base framework#
[ENH] html display of estimators - tag and consistent handling of via
_steps_attrinHeterogenousMetaEstimatordescendants (#7233) @mateuszkasprowicz[ENH] sync dependency checkers with
scikit-base(#7529) @fkiraly
Benchmarking, Metrics, Splitters#
[ENH] refactor
InstanceSplitterto a utilityapply_splitto apply ansklearnsplit to a time series collection (#7330) @ksharma6[ENH] Detection metrics - coercion to detection type in boilerplate (#7546) @fkiraly
[ENH] reduce requested metadata in forecasting metric input check (#7514) @fkiraly
[ENH] Expose
evaluateparams toadd_taskof forecasting benchmark (#7574) @benHeid[ENH] Implement efficient
_evaluate_by_indexforMedianSquaredError(#7615) @satvshr[ENH] RAND Index metric for time series segmentation (#7533) @gavinkatz001
[ENH] forecasting
evaluate: newreturn_modelparameter to return fitted estimator states (#7637) @marrov[ENH] windowed F1-score for detection (#7628) @gavinkatz001
[ENH] Implement efficient
_evaluate_by_indexfor MdAPE (#7606) @HarshvirSandhu[ENH] Forecasting metrics dispatch of
__call__toevaluatevsevaluate_by_index(#7608) @benHeid
Data sets and data loaders#
[ENH] Dataset object interface (#7398) @felipeangelimvieira
Data types, checks, conversions#
Forecasting#
[ENH] deprecate
fitted_listattribute ofHierarchyEnsembleForecasterand (#7423) @sanskarmodi8[ENH] refactor forecasting metric tests prep - object_type tag
metric_forecasting(#7516) @fkiraly[ENH] Add
SplineTrendForecaster(#7487, #7502) @Dehelaan, @jgyasu[ENH] Interface to
skforecast.recursive.ForecasterRecursive(#7554) @yarnabrina[ENH] Forecaster imputer for
RecursiveReductionForecaster(#7535) @lenaklosik[ENH]
TinyTimeMixerValidation split efficiency fix (#7647) @RHYTHM2405[ENH] allow arbitrary imputation transformers in 2nd generation reducers (#7646) @fkiraly
[ENH] MAPA forecaster (#7620) @phoeenniixx
[ENH] Set
context_lenandhorizon_lenper default inTimesFMForecaster(#7597) @tanvincible
Parameter estimation and hypothesis testing#
Registry and search#
Time series anomalies, changepoints, segmentation#
[ENH] detection module rework - populate author and maintainer tags (#7510) @fkiraly
[ENH] Fix
BaseDetectorfor segmentation and HMM estimators (#7480) @y-mx, @fkiraly[ENH] refactor checks for detector outputs into separate module (#7542) @fkiraly
[ENH] detection base class input checks and conversions (#7577) @fkiraly
[ENH]
ClaSPSegmentationfixes for new detection interface (#7585) @fkiraly[ENH]
PyODDetectorfixes for new detector interface (#7584) @fkiraly[ENH] window based time series segmentation via clustering (#7612) @Ankit-1204
[ENH]
BinarySegmentationfixes for new detection interface (#7504) @Alex-JG3[ENH]
GreedyGaussianSegmentationfixes for new detection interface (#7472) @Spinachboul
Time series classification#
[ENH] add
sklearncompliance toRotationForest(#7638) @PranavBhatP
Time series clustering#
Transformations#
[ENH] Add multiple test parameter sets for
YtoXtransformer (#7469) @tanvincible[ENH] create
rbf_forecaster.pyusingRBFTransformerNeural networks (#7334) @phoeenniixx
Test framework#
Documentation#
[DOC] Add contributor Gavin Katz to .all-contributorsrc file (#7513) @gavinkatz001
[DOC] Added Note in docstring of InceptionTimeClassifier for fixing #7453 (#7508) @skinan
[DOC] Fixing some typos in
transformation.rst(#7520) @phoeenniixx[DOC] docstring usage examples for
AlignerDTWandAlignerDTWfromDist(#7381) @Adarsh2345[DOC] API reference documentation for
SeriesXarraymtype (#7494) @SABARNO-PRAMANICK[DOC] add proper credits to hfawaz and dl-4-tsc in various time series classifiers (#7518) @fkiraly
[DOC] API specification docstrings for
TablePdDataFrameandTablePdSeriesmtypes (#7540) @VjayRam[DOC] API reference for mtype PanelGluontsList (#7539) @b9junkers
[DOC] API reference for
TableNp1Dmtype (#7553) @RUPESH-KUMAR01[DOC] Add missing docstring for functions in
/transformations/panel/catch22.py(#7527) @PranavBhatP[DOC] Added docstrings for TableNp2d and TableListOfDict classes (#7563) @VjayRam
[DOC] minor formatting improvement in
hf_transformers_forecaster(#7659) @fkiraly[DOC] Update the docstring of sameloc splitter with a proper mathematical description (#7550) @keitaVigano
[DOC] AutoREG docstring includes non-existent arguments #7653 (#7654) @cheachu
[DOC] minor improvements in data loader docs (#7633) @fkiraly
[DOC] Fixed
TablePolarsEagerrendering issues related to recent merged PR #7666 (#7699) @fnhirwa[DOC] improved formatting and clarity in release manager guide (#7705) @fkiraly
[DOC] improvements to git workflow guide, note about avoiding rebase (#7670) @fkiraly
[DOC] improved docstring for grouped/clustering forecaster compositors (#7709) @fkiraly
[DOC] add newer patterns to handle multivariate data in tutorial (#7362) @PranavBhatP
[DOC] Fix typo in example code in documentation requiring double brackets to slice dataframe. DeepAR (#7641) @gbilleyPeco
[DOC] Fix typo in Add Estimators Documentation (#7519) @jgyasu
[DOC] Added Description for
TablePolarsEager(#7666) @RHYTHM2405[DOC] Fix invalid link to elections repository in sktime’s website (#7631) @tanvincible
[DOC] Fix typo in example code in documentation requiring double brackets to slice dataframe. (#7639) @gbilleyPeco
[DOC] update ttm docstring to inform about zero-shot/fine-tuning (#7280) @geetu040
Maintenance#
[MNT] Bump
statsforecastto latest version (#7573) @yarnabrina[MNT]
tsfreshestimators - temporary bound onscipy(#7624) @fkiraly[MNT] temporary skip of
test_st_on_unit_test(#7726) @fkiraly[MNT] fix: add
aarch64installation constraint fortemporian(#7692) @abhishek-iitmadras[MNT] [Dependabot](deps): Update
pykanrequirement from<0.2.7,>=0.2.1to>=0.2.1,<0.2.9(#7396) @dependabot[bot][MNT] [Dependabot](deps): Update
daskrequirement from<2024.8.1to<2025.1.1(#7481, #7545, #7658) @dependabot[bot][MNT] [Dependabot](deps): Update
skprorequirement from<2.9.0,>=2to>=2,<2.10.0(#7704) @dependabot[bot][MNT] [Dependabot](deps): Update
numbarequirement from<0.61to<0.62(#7677) @dependabot[bot][MNT] [Dependabot](deps): Update
optunarequirement from<4.2to<4.3(#7676) @dependabot[bot]
Fixes#
BaseObject and base framework#
Forecasting#
[BUG] fix
get_fitted_paramsaccess to wrapped estimators in_HeterogenousEnsembleForecasterdescendants (#7522) @fkiraly[BUG] fix use of
ImputerinRecursiveReductionForecaster(#7706) @Salzemann
Neural networks#
[BUG]
AttentionLSTM- Remove activity regularizers (#7582) @marcosfelt
Registry and search#
Time series anomalies, changepoints, segmentation#
[BUG] Ensured that all
_fitetc have lower casey(#7673) @KrishBakshi
Time series classification#
[BUG] fix expected outputs tests of
ShapeletTransformClassifierpost shapelet transform fix #7499 (#7734) @fkiraly[BUG] fix bugs in
MACNNClassifier,MACNNRegressor(#7651) @KrishBakshi
Transformations#
[BUG] Fix inconsistency in
_online_shapelet_distancestd computation (#7499) @fnhirwa[BUG]
TSFreshFeatureExtractorandTSFreshRelevantFeatureExtractor: fix distributor not getting passed through toextract_features(#7541) @marcosfelt[BUG] in transformers, do not pass
yto inner in case of scitype mismatch (#7733) @fkiraly
Contributors#
@Abelarm, @abhishek-iitmadras, @Adarsh2345, @Alex-JG3, @Ankit-1204, @b9junkers, @benHeid, @cheachu, @Dehelaan, @felipeangelimvieira, @fkiraly, @fnhirwa, @gavinkatz001, @gbilleyPeco, @geetu040, @HarshvirSandhu, @jgyasu, @keitaVigano, @KrishBakshi, @ksharma6, @lenaklosik, @marcosfelt, @marrov, @mateuszkasprowicz, @phoeenniixx, @PranavBhatP, @RHYTHM2405, @RUPESH-KUMAR01, @SABARNO-PRAMANICK, @Salzemann, @sanskarmodi8, @satvshr, @seigpe, @skinan, @Spinachboul, @tanvincible, @VjayRam, @y-mx, @yarnabrina
Version 0.35.0 - 2024-12-09#
Maintenance release with scheduled deprecations and change actions.
For the last non-maintenance content update, see 0.34.1.
Dependency changes#
scikit-basebounds have been updated to>=0.6.1,<0.13.0skpro(probability distributions soft dependency) bounds have been updated to>=2,<2.9.0
Deprecations and removals#
From
sktime 0.38.0, forecasters’predict_probawill requireskproto be present in the python environment, for distribution objects to represent distributional forecasts. Sincesktime 0.35.0, an error is raised upon call of forecasterpredict_probaifskprois not present in the environment. Users of forecasters’predict_probashould ensure thatskprois installed in the environment.The probability distributions module
sktime.probadeprecated and will be fully replaced byskproinsktime 0.38.0. Untilsktime 0.38.0, imports fromsktime.probawill continue working, defaulting tosktime.probaifskprois not present, otherwise redirecting imports toskproobjects. Sincesktime 0.35.0, an error is raised ifskprois not present in the environment, otherwise imports are redirected toskpro. Direct or indirect users ofsktime.probashould ensureskprois installed in the environment. Direct users of thesktime.probamodule should, in addition, replace any imports fromsktime.probawith imports fromskpro.distributions.in
neuralforecastfacing estimator interfaces, the default for thebroadcastingparameter has been consistently changed toFalse.
Maintenance#
[MNT] [Dependabot](deps): Update scikit-base requirement from
<0.12.0,>=0.6.1to>=0.6.1,<0.13.0(#7392) @dependabot[bot][MNT] [Dependabot](deps): Update skpro requirement from
<2.8.0,>=2to>=2,<2.9.0(#7406) @dependabot[bot][MNT] 0.35.0 deprecations and change actions (#7485) @fkiraly
[MNT] remove top level import of transformers (#7491) @yarnabrina
[MNT] add upper bound to skforecast autoreg adapter (#7488) @yarnabrina
[DOC] fix failing cells in detection notebook after
skchangeupdate (#7483) @fkiraly[BUG] Fix codec error on traditional Chinese Windows systems (#7498) @fnhirwa
Contributors#
Version 0.34.1 - 2024-11-29#
Highlights#
Full rework of detectors API, module is now maturing. @tveten, @alex-jg3, @fkiraly, @alyssadsouza, @ShivamJ07, @RobotPsychologist
in forecasting metrics, allow a callable to be passed as
sample_weightfor dynamic weight generation (#7288) @MarkusSagenInterfaces to new
neuralforecastestimators (#7434) @yarnabrinaBox-Cox bias adjustment for forecasters (#7268) @sanskarmodi8, @talat-khattatov
SCINet forecaster (#7400) @Sohaib-Ahmed21
Spatio-Temporal DBSCAN clusterer (#7353) @vagechirkov, @vectornd
Dependency changes#
dask(data container and parallelization back-end soft dependency) bounds have been updated to<2024.11.3
Core interface changes#
Forecasting#
Forecasting metrics now allow a callable to be passed as sample_weight for dynamic weight generation.
The precise contract the callables need to satisfy is documented in the docstrings.
Time series anomalies, changepoints, segmentation#
The core API for time series detectors has changed, and has been homogenized with the API of skchange.
The changes are in parts breaking, and require adjustments in the user code. The changes were necessary to ensure a consistent API for time series detectors.
BaseDetector.predictnow returns apd.DataFrame. ThisDataFramealways has aRangeIndex, with individual rows corresponding to individual events. TheDataFramehas at least a column"ilocs", which contains the integer indices of the detected events, in reference to the argumentXpassed topredict. The format, for an entry, can be a single integer or a left-closedpd.Intervalof integers, indicating either a single point or a segment of points.an additional column
"labels"may be present in cases of labelled events.BaseDetector.predict_pointsandpredict_segmentsnow also returnpd.DataFrame, following the same format aspredict, with the difference thatpredict_pointscoerces detected events to points, taking start and end points of segments as separate points.predict_segmentscoerces detected events to segments, possibly single-index segments.BaseDetector.transformnow always returns apd.DataFramewith, which has at least a column"transform"containing the transformed series.
Enhancements#
BaseObject and base framework#
Benchmarking, Metrics, Splitters#
Forecasting#
[ENH] add
RecursiveReductionForecasterto module exports, tests, and documentation (#4806) @fkiraly[ENH]
EnsembleForecasteroption to specify multiple copies of same forecaster easily (#7424) @ericjb[ENH] Add new arguments to neuralforecast rnn and lstm (#7422) @yarnabrina
[ENH] Box-Cox bias adjustment for forecasters (#7268) @sanskarmodi8, @talat-khattatov
[ENH] in forecasting metrics, allow a callable to be passed as
sample_weightfor dynamic weight generation (#7288) @MarkusSagen[ENH] SCINet forecaster (#7400) @Sohaib-Ahmed21
[ENH] Reduce memory footprint of
statsmodelsadapter - save necessary_yinfo to remove need for_y(#7417) @hudsonhoch[ENH] Interface new
neuralforecastestimators (#7434) @yarnabrina
Time series anomalies, changepoints, segmentation#
[ENH] add
_transform_scoretemplate and remove deadfmtrelated code from detectors (#7425) @ShivamJ07[ENH] homogenization of sktime and skchange detection API - base class
predictreturn type (#7433) @alyssadsouza[ENH] rename private
make_annotation_problemtomake_detection_problem(#7436) @fkiraly[ENH] move detector non-suite tests to
detectionfolder (#7445) @fkiraly[ENH] homogenization of
sktimeandskchangedetection API - part 1 - base class andyargument (#7342) @fkiraly[ENH] homogenization of sktime and skchange detection API - part 2 - base class
transformreturn type (#7432) @alyssadsouza[ENH] move detector classes to
detectionmodule (#7448) @fkiraly[ENH] conditional testing and imports for estimator specific tests in
detectionmodule (#7446) @fkiraly[ENH] add detector specific tags to the tag registry and tags API reference (#7443) @liya-zhu
[ENH] Changed scitype name
"series-annotator"to"detector"(#7361) @jgyfutub[ENH] homogenization of
sktimeandskchangedetection API - base classpredict_scoresreturn type (#7460) @alyssadsouza[ENH] homogenization of
sktimeandskchangedetection API - base classpredict_pointsreturn type (#7459) @alyssadsouza[ENH] move detector tests to
detectionmodule (#7455, #7464) @fkiraly[ENH] fix API incompatibility of
SubLOFdetector (#7468) @fkiraly[ENH] add
skchangechange point detectors as placeholder records (#7458) @ShivamJ07, @fkiraly[ENH] add placeholder records for
skchangesegment anomaly detectors (#7470) @fkiraly[ENH] update
DetectorPipelineandDetectorAsTransformerinner calls and docstrings (#7475) @fkiraly[ENH] homogenization of sktime and skchange detection API -
predict,predict_points,predict_segments(#7476) @fkiraly
Time series classification#
Time series clustering#
[ENH] Spatio-Temporal DBSCAN clusterer (#7353) @vagechirkov, @vectornd
Time series regression#
Transformations#
Test framework#
Documentation#
[DOC] fix typos in changelog, better explanation of scoring parameters (#7324) @fkiraly
[DOC] in docstring, rename
ExampletoExamplessections (#7341) @fkiraly[DOC] add docstring example for
DropNA(#7327) @SSROCKS30[DOC] Fixed sktime logo positioning in the README (#7322) @Akhsuna07
[DOC] Add uni2ts in libs/README.md (#7348) @pranavvp16
[DOC] Small typo on explanation of regression (#7366) @manolotis
[DOC] Add Binary Segmentation Estimator to API reference (#7379) @Dehelaan
[DOC] categories for clustering algorithms in API reference (#7369) @fkiraly
[DOC] API reference for data representations (#7231) @fkiraly
[DOC] Improving the
installationinstructions to improve clarity (#7339) @julian-fong[DOC] fix duplications of the word “correspond” (#7403) @fkiraly
[DOC] Add import location to HolidayFeatures docs (#7401) @mjste
[DOC] add rubric for time series detectors to estimator overview (#7389) @gavinkatz001
[DOC] provide proper mathematical description in docstring of sliding window splitter. (#7376) @keitaVigano
[DOC] add detector tags to estimator overview, fix API reference (#7473) @fkiraly
[DOC] improve formatting of forecasting metrics (#7474) @fkiraly
Maintenance#
[MNT] allow
optuna<4.2and test 3.13 support (#7384) @fkiraly[MNT]
detectionmodule - move CI fromannotationmodule (#7456) @fkiraly[MNT] updating versions of pre-commit hooks (#7461) @yarnabrina
[MNT] [Dependabot](deps): Update
daskrequirement from<2024.8.1to<2024.11.3(#7387) @dependabot[bot][MNT] [Dependabot](deps): Update
pytest-randomlyrequirement from<3.16,>=3.15to>=3.15,<3.17(#7338) @dependabot[bot]
Fixes#
Forecasting#
[BUG] rectify
ignores-exogeneous-Xtag value inCroston(#7404) @yarnabrina
Time series anomalies, changepoints, segmentation#
Time series classification#
[BUG] fix input shape in
CNTCClassifierandCNTCRegressor(#7269) @sanskarmodi8
Time series clustering#
[BUG] fix input shape in
CNTCClassifier(#7269) @sanskarmodi8
Time series regression#
[BUG] fix input shape in
CNTCRegressor(#7269) @sanskarmodi8
Test framework#
Contributors#
@Akhsuna07, @Alex-JG3, @alyssadsouza, @Dehelaan, @ericjb, @fkiraly, @gavinkatz001, @geetu040, @hudsonhoch, @jgyfutub, @julian-fong, @jusssch, @keitaVigano, @liya-zhu, @manolotis, @MarkusSagen, @medha-14, @mjste, @pranavvp16, @sanskarmodi8, @ShivamJ07, @Sohaib-Ahmed21, @SSROCKS30, @tajir0, @talat-khattatov, @vagechirkov, @VectorNd, @yarnabrina
Version 0.34.0 - 2024-10-19#
Maintenance release:
full support for
python 3.13scheduled deprecations and change actions.
For last non-maintenance content updates, see 0.33.2.
Dependency changes#
numpybounds have been updated to>=1.21,<2.2scikit-basebounds have been updated to>=0.6.1,<0.12.0holidays(transformations soft dependency) bounds have been updated to>=0.29,<0.59
Deprecations and removals#
The
annotationmodule will be renamed todetection, starting with 0.34.0. Until a future release not earlier than 0.37.0 or 1.0.0, the module will be available under both names to ensure downwards compatibility of imports.The
annotationsoft dependency set will be renamed todetection. Theannotationsoft dependency set will be available until a future release not earlier than 0.37.0 or 1.0.0, to ensure downwards compatibility of imports.
Maintenance#
[MNT] python 3.13 support in
pyproject.tomland CI (#7198) @fkiraly[MNT] 0.34.0 deprecations and change actions (#7302) @fkiraly
[MNT] prepare rename
annotationmodule todetection- mapped imports (#7294) @fkiraly[MNT] deduplicate
sktimeandskbaseBaseEstimator(#7213) @fkiraly[MNT] [Dependabot](deps): Update numpy requirement from
<2.1,>=1.21to>=1.21,<2.2(#7103) @dependabot[bot][MNT] [Dependabot](deps): Update scikit-base requirement from
<0.9.0,>=0.6.1to>=0.6.1,<0.12.0(#7238) @dependabot[bot][MNT] [Dependabot](deps): Update holidays requirement from
<0.55,>=0.29to>=0.29,<0.59(#7308) @dependabot[bot][MNT] [Dependabot](deps): Update sphinx-issues requirement from
<5.0.0to<6.0.0(#7307) @dependabot[bot]
Documentation#
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-forecastingandneuralforecastmodels now provide probabilistic forecasts for global forecasting (#6628, #6666) @XinyuWuuPolynomialTrendForecasternow can make probabilistic forecasts (#6424) @ericjbTimesFMForecasternow 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.0u8darts(forecasting soft dependency) bounds have been updated to>=0.29.0,<0.32.0dask(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 (interval forecasts) parameter,
for example EmpiricalCoverage(coverage=0.7) for “empirical coverage at nominal interval coverage 70 percent”.
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.
For example, ForecastingGridSearchCV(fcst, cv, scoring=PinballLoss(alpha=[0.3, 0.7])),
to tune the forecaster fcst scored by the pinball loss at quantiles 0.3 and 0.7.
Enhancements#
BaseObject and base framework#
Benchmarking, Metrics, Splitters#
[ENH]
ExpandingSlidingWindowSplitter, switching from expanding window to sliding window at cutoff point (#7193) @MarkusSagen[ENH] added
coverageparameter to all metrics ofpred_intervaltype (#7278) @talat-khattatov
Data types, checks, conversions#
[ENH] refactor
datatypesmodule toscikit-baseclasses and data records (#7161) @fkiraly[ENH] Fix polars
PerformanceWarningwhen object is of typepolars.LazyFrame(#7221) @shivanshsinghal-22
Forecasting#
[ENH] Added method
predict_intervaltoPolynomialTrendForecaster(#6424) @ericjb[ENH] Quantile Forecast for
pytorch-forecastingModels with Global Forecast API (#6628) @XinyuWuu[ENH] Global Forecast API for
NeuralForecastinterface (#6666) @XinyuWuu[ENH] testing global forecasters: reduces number of obs in
_make_hierarchicalfor 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_paramsinThetaLinesTransformer(#7199) @Anuragwagh[ENH] cached
timesfminstance in case of repeated use (#7204) @fkiraly[ENH] refactor probabilistic prediction default dispatching logic to mixin class (#7230) @fkiraly
[ENH]
TimesFMForecasterdependencies now depends onuse_source_package(#7212) @Prtm2110[ENH] python 3.13 compatibility -
SquaringResiduals(#7244) @fkiraly
Registry and search#
Time series classification#
Transformations#
[ENH]
HOG1DTransformer add new test parameter set toget_test_params(#7183) @Humorloos[ENH] Added second parameters example to
get_test_paramsofFilter(#7178) @KarlKolibri[ENH] temporal radial basis function feature transformer (#7261) @phoeenniixx
Test framework#
[ENH]
get_test_paramscases 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
Filtertransformer (#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
fhin forecasting methods is interpreted (#7227) @ericjb
Maintenance#
[MNT] Removes coverage upload steps from CI (#7012) @Prtm2110
[MNT] [Dependabot](deps): Update
skprorequirement from<2.6.0,>=2to>=2,<2.8.0(#7245) @dependabot[bot][MNT] [Dependabot](deps): Update
sphinx-galleryrequirement from<0.18.0to<0.19.0(#7264) @dependabot[bot][MNT] [Dependabot](deps): Update
u8dartsrequirement from<0.31,>=0.29.0to>=0.29.0,<0.32(#7272) @dependabot[bot][MNT] [Dependabot](deps): Update
daskrequirement from<2024.8.1to<2024.10.1(#7292) @dependabot[bot]
Fixes#
Benchmarking, Metrics, Splitters#
[BUG] Fix
ExpandingCutoffSplitterwhenstep_length > 1(#7290) @ninedigits
Data sets and data loaders#
Data types, checks, conversions#
[BUG] fixed
dask.dataframeimport error indask_to_pdmodule (#7260) @sanskarmodi8
Forecasting#
[BUG] fix
ForecastingHorizon.to_absolutewith multiple frequencies (#7172) @tianjiqx[BUG] in
ReconcilerForecaster, fixreturn_totalsparameter for all strategies (#7208) @SaiRevanth25[BUG] Fix
DartsLinearRegressionfailing instead of giving a warning (#7235) @fnhirwa[BUG] Fix
Prophetnot 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
GroupbyCategoryForecasterfor 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.1mne(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
datatypesexample fixtures toBaseObjectclasses (#7133) @fkiraly
Forecasting#
[ENH] Add interface for MOIRAI foundation model (#6746) @pranavvp16, @benHeid
[ENH]
ThetaForecaster- add one more parameter set (#7055) @fkiraly[ENH]
GroupbyCategoryForecasterfor applying panel forecasting by category or segment (#7066) @felipeangelimvieira[ENH] Adding a parameter to
ReconcilerForecasterto return a dataframe without the dunder levels (#7127) @SaiRevanth25[ENH] add
_predict_varintest_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_univfrom extension templates (#7058) @fkiraly
Maintenance#
[MNT] Updating pre-commit hooks and corresponding changes (#7109) @yarnabrina
[MNT] [Dependabot](deps): Update
optunarequirement from<3.7to<4.1(#7104) @dependabot[bot][MNT] [Dependabot](deps): Update
mnerequirement from<1.8,>=1.5to>=1.5,<1.9(#7129) @dependabot[bot][MNT] temporarily skip
temporianrelated failure oftest_complex_functionuntil #7040 is resolved (#7147) @fkiraly[MNT] bound
SignatureTransformertonumpy<2(#7163) @fkiraly[MNT] remove ptf install from example notebooks (#7165) @XinyuWuu
[MNT] remove python version bound from
pytorch-forecastingbased 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.0holidays(transformations soft dependency) bounds have been updated to>=0.29,<0.57pykan(deep learning soft dependency) bounds have been updated to>=0.2,<0.2.7mne(transformations soft dependency) bounds have been updated to>=1.5,<1.9dask(data container and parallelization back-end soft dependency) bounds have been updated to<2024.8.3pytorch-forecasting(forecasting soft dependency) bounds have been updated to>=1.0.0,<1.2.0
Deprecations and removals#
in
DirectReductionForecasterthe default forwindows_identicalhas changed toFalse.
Maintenance#
[MNT] 0.33.0 deprecations and change actions (#7091) @fkiraly
[MNT] ffp3 datasets URLs changed on CRAN; updated
_fpp3_loaders.pyaccordingly (#7084) @ericjb[MNT] remove <3.11 restriction for
pytorch-forecasting, add upper bound (#7092) @fkiraly[MNT] [Dependabot](deps): Update
daskrequirement from<2024.8.2to<2024.8.3(#7062) @dependabot[bot][MNT] [Dependabot](deps): Update
numpyrequirement from<2.1,>=1.21to>=1.21,<2.2(#7007) @dependabot[bot][MNT] [Dependabot](deps): Update
scikit-baserequirement from<0.9.0,>=0.6.1to>=0.6.1,<0.10.0(#7035) @dependabot[bot][MNT] [Dependabot](deps): Update
holidaysrequirement from<0.56,>=0.29to>=0.29,<0.57(#7096) @dependabot[bot][MNT] [Dependabot](deps): Update
pykanrequirement from<0.2.2,>=0.2to>=0.2,<0.2.7(#7010) @dependabot[bot][MNT] [Dependabot](deps): Update
mnerequirement from<1.8,>=1.5to>=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
polarsdependency incompatibilitycompatibility with
skchange2nd party integrationimprovements to the anomalies, changepoints, segmentation framework
documentation update related to upcoming
sktimeelections
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, andsktimeestimators currently, and is extensible. A user and developer shorthand for such coercion is provided as theregistry.coerce_scitypefunction, 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 * detectorwill 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
BaseSeriesAnnotatorbase 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 continuous 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
TransformedTargetForecasterandForecastingPipeline
Version 0.32.2 - 2024-08-26#
Highlights#
HierarchicalProphetforecaster 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.56dask(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 viapredictcapability: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
Seriesscitype supports (#6485) @pranavvp16[ENH] Polars
Panelscitype support (#6552) @pranavvp16[ENH] Addition of
feature_kindmetadata attribute togluontsdatatypes (#6871) @shlok191
Forecasting#
[ENH] New regularized VAR reduction forecaster,
VARReduce(#6725) @meraldoantonio[ENH] Add
HierarchicalProphetestimator toprophetversemodule (#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-contributorsrcwith 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
TransformedTargetForecasterdocstring (#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
EnbPIForecasterdocstring (#7015) @fkiraly
Maintenance#
[MNT] Refactor
show_versionsto usedependenciesmodule (#6883) @fkiraly[MNT] sync changelog with hotfix branch
anirban-sktime-0.31.2(#6963) @yarnabrina[MNT] add
numpy 2incompatibility flag topmdarimadependency (#6974) @fkiraly[MNT] decorate
test_auto_arimawithnumpy 2skip until final fix/diagnosis (#6973) @fkiraly[MNT] remove
tsbootstrapdependency from public dependency sets (#6966) @fkiraly[MNT] rename base class
TimeSeriesLloydstoBaseTimeSeriesLloyds(#6992) @fkiraly[MNT] remove module level
numbaimport warnings (#6999) @fkiraly[MNT]
esigbased estimators: addnumpy<2bound (#7036) @fkiraly[MNT] [Dependabot](deps): Bump
tj-actions/changed-filesfrom 44 to 45 (#7019) @dependabot[bot][MNT] [Dependabot](deps): Update
holidaysrequirement from<0.55,>=0.29to>=0.29,<0.56(#7006) @dependabot[bot][MNT] [Dependabot](deps): Update
daskrequirement from<2024.8.1to<2024.8.2(#7005) @dependabot[bot]
Fixes#
BaseObject and base framework#
[BUG] fix
test_softdep_errordependency 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
ForecastingBenchmarkgiving an error when the dataloader returns the tuple (y, X) (#6971) @SaiRevanth25
Data sets and data loaders#
Data types, checks, conversions#
[BUG] Fix
nested_univconverter 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_reductiontype 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.0skforecast(forecasting soft dependency) bounds have been updated to<0.14.0.
Core interface changes#
all
sktimeestimators and objects are now required to have at least two test parameter sets inget_test_paramsto be compliant withcheck_estimatorcontract 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_probawill requireskproto be present in the python environment, for distribution objects to represent distributional forecasts. Untilsktime 0.35.0,predict_probawill continue working withoutskpro, defaulting to return objects insktime.probaifskprois not present. Fromsktime 0.35.0, an error will be raised upon call of forecasterpredict_probaifskprois not present in the environment. Users of forecasters’predict_probashould ensure thatskprois installed in the environment.The probability distributions module
sktime.probadeprecated and will be fully replaced byskproinsktime 0.38.0. Untilsktime 0.38.0, imports fromsktime.probawill continue working, defaulting tosktime.probaifskprois not present, otherwise redirecting imports toskproobjects. Fromsktime 0.35.0, an error will be raised ifskprois not present in the environment, otherwise imports are redirected toskpro. Direct or indirect users ofsktime.probashould ensureskprois installed in the environment. Direct users of thesktime.probamodule should, in addition, replace any imports fromsktime.probawith imports fromskpro.distributions.
Contents#
[MNT] 0.32.0 deprecations and change actions (#6916) @fkiraly
[MNT] [Dependabot](deps): Update
skprorequirement from<2.5.0,>=2to>=2,<2.6.0(#6897) @dependabot[bot][MNT] remove
numpy 2incompatibility flag fromnumbabased estimators (#6915) @fkiraly[MNT] deprecation of
probamodule in favour ofskprosoft dependency (#6940) @fkiraly[MNT] update versions of
pre-commithooks (#6947) @yarnabrina[MNT] 0.32.0 release action - revert temporary skip
get_test_paramsnumber check for 0.21.1 and 0.22.0 release (#5114) @fkiraly[MNT] Bump
skforecastto0.13version allowing support for python3.12(#6946) @yarnabrina[BUG] Fix
Xt_msgtype intransformations.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_reductiontype 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
dartsreduction models (#6712) @fnhirwa, @yarnabrinaLTSFTransformerbased oncure-labresearch code base (#6202) @geetu040forecasters can now support categorical
X, as per tag (#6704, #6732) @Abhay-LejithDirectReductionForecasternow has awindows_identicaloption (#6650) @hliebertForecastingOptunaSearchCVcan 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.54dask(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_aliastag 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: boolto indicate that the estimator can handle categorical features in the input dataX. Such estimator can be used with categorical and string-valued features ifXis passed in one of thepandasbased mtypes.the html representation of all objects now includes a link to the documentation of the object, and is now in line with the
sklearnhtml 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_panelto return names of invalidobjectcolumns if there are any (#6797) @SaiRevanth25[ENH] Allow object dtype in series (#5886) @yarnabrina
[ENH] converter framework tests in
datatypesto cover all types, including those requiring soft dependencies (#6838) @fkiraly[ENH] add missing
feature_kindmetadata fields togluontsbased data container checkers (#6861) @fkiraly[ENH] added
feature_kindmetadata in datatype checks (#6490) @Abhay-Lejith[ENH] Adding support for
gluontsPandasDatasetobject (#6668) @shlok191[ENH] Added support for
gluontsPandasDatasetas aSeriesscitype (#6837) @shlok191
Forecasting#
[ENH]
dartsReduction Models adapter (#6712) @fnhirwa, @yarnabrina[ENH] Extension Template For Global Forecasting API (#6699) @XinyuWuu
[ENH] enable multivariate data passed to
autotsinterface (#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
LTSFTransformerbased oncure-labresearch code base (#6202) @geetu040[ENH] Add
windows_identicaltoDirectReductionForecaster(#6650) @hliebert[ENH] updates type inference in
make_reductionto use central scitype inference and allow proba tabular regressors (#6893) @fkiraly[ENH] DeepAR and NHiTS and refinements for
pytorch-forecastinginterface (#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]
pandasinner 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_vectorizedaccess more defensive inBaseTransformer(#6863) @fkiraly
Test framework#
Vendor and onboard libraries#
[ENH] Vendor fracdiff library (#6777) @DinoBektesevic
[ENH] improvements to vendored
fracdifflibrary (#6912) @fkiraly
Documentation#
[DOC] Notebook and Template For Global Forecasting API (#6699) @XinyuWuu
[DOC] Add authorship credits to
MatrixProfileTransformerfor Stumpy authors (#6762) @alexander-lakocy[DOC] add examples to
StatsForecastGARCHandStatsForecastARCHdocstrings (#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]
TruncationTransformerdocstring 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_mtypeto match skprocheck_is_mtypefunction (#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_scoringdocstring (#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
Callableimport fromtypingtocollections.abc(#6798) @yarnabrina[MNT] Fix spellings using
codespellandtypos(#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
pykanimport and dependency checks (#6881) @fkiraly[MNT] temporarily pin
matplotlibbelow3.9.1(#6890) @yarnabrina[MNT] make
pyproject.tomlparsing 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
pandasdeprecation fix (#6925) @fkiraly[MNT] Update the path to script to fix #6926 (#6933) @fnhirwa
[MNT] [Dependabot](deps): Update
pytestrequirement from<8.3,>=7.4to>=7.4,<8.4(#6819) @dependabot[bot][MNT] [Dependabot](deps): Update
daskrequirement from<2024.6.3to<2024.7.2(#6818) @dependabot[bot][MNT] [Dependabot](deps): Update
sphinx-galleryrequirement from<0.17.0to<0.18.0(#6820) @dependabot[bot][MNT] [Dependabot](deps): Update
holidaysrequirement from<0.53,>=0.52to>=0.52,<0.54(#6780) @dependabot[bot][MNT] [Dependabot](deps): Update sphinx requirement from
!=7.2.0,<8.0.0to!=7.2.0,<9.0.0(#6865) @dependabot[bot][MNT] [Dependabot](deps): Update
holidaysrequirement from<0.54,>=0.52to>=0.52,<0.55(#6898) @dependabot[bot][MNT] [Dependabot](deps): Update
daskrequirement from<2024.7.2to<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
ADICVTransformerand fix CV calculation (#6757) @sbhobbes[BUG] fix
BaseTransformerbroadcasting condition ininverse_transformfor decomposers (#6824) @fkiraly[BUG] fix
MSTLinverse transform and use in forecasting pipeline (#6825) @fkiraly[BUG] fix handling of
numpyintegers in refactoredCatch22transformation (#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 2compatibilitycode style and pre-commit updates, using
rufffor linting
For last non-maintenance content updates, see 0.30.2.
Dependency changes#
numpy(core dependency) bounds have been updated to<2.1,>=1.21skpro(soft dependency) bounds have been updated to>=2,<2.5.0
Deprecations and removals#
Time series anomalies, changepoints, segmentation#
The
fmtargument in time series annotators is now deprecated. Users should use thepredictandtransformmethods instead,predictinstead offmt="sparse", andtransforminstead offmt="dense".
Time series classification#
The
convert_y_to_kerasmethod in deep learning classifiers has been removed. Users who have been using this method should instead useOneHotEncoderfromsklearndirectly, asconvert_y_to_kerasis a simple wrapper aroundOneHotEncoderwith default settings.
Contents#
[MNT] raise
numpybound tonumpy < 2.1,numpy 2compatibility (#6624) @fkiraly[MNT] [Dependabot](deps): Update skpro requirement from
<2.4.0,>=2to>=2,<2.5.0(#6663) @dependabot[bot][MNT] bound
prophetbased forecasters tonumpy<2due to incompatibility ofprophet(#6721) @fkiraly[MNT] further
numpy 2compatibility fixes in estimators (#6729) @fkiraly[MNT] handle
numpy 2incompatible soft deps (#6728) @fkiraly[MNT] Upgrade code style beyond
python 3.8(#6330) @yarnabrina[MNT] Update pre commit hooks post dropping
python 3.8support (#6331) @yarnabrina[MNT] suppress aggressive
freqrelated 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) @geetu040ForecastingOptunaSearchCVfor hyper-parameter tuning of forecasters viaoptuna(#6630) @mk406, @gareth-brown-86prophetversepackage forecasters are now indexed bysktime(#6614) @felipeangelimvieirapytorch-forecastingadapter, experimental global forecasting API (#6228) @XinyuWuuskforecastadapter for reduction strategies (#6531) @Abhay-Lejith, @yarnabrinaEnbPI based forecaster with components from
aws-fortuna(#6449) @benHeidDTW distances and aligners from
dtaidistance(#6578) @fkiralyparametrize_with_checksutility 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.53dask(data container and parallelization back-end) bounds have been updated to<2024.5.3optunais now a soft dependency, via theForecastingOptunaSearchCVestimator, in theall_extrassoft dependency set, with bounds<3.7pytorch-forecastingis now a soft dependency, in thedl(deep learning) soft dependency setskforecastis now a soft dependency, in theall_extrassoft dependency set and theforecastingsoft dependency set, with bounds<0.13,>=0.12.1dtaidistanceis now a soft dependency, in theall_extrassoft dependency set and thealignmentsoft 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_checksutility 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
sktimerepository. For detailed usage notes, consult the extender guide: Implementing Estimators, or inspect theProphetverseforecaster 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-forecastingadapter with Global Forecasting API (#6228) @XinyuWuu[ENH] fitted parameter forwarding utility, forward
statsforecastestimators’ fitted parameters (#6349) @fkiraly[ENH] EnbPI based forecaster with components from
aws-fortuna(#6449) @benHeid[ENH]
skforecastForecasterAutoreg adapter (#6531) @Abhay-Lejith, @yarnabrina[ENH] Extend
HFTransformersForecasterfor PEFT methods (#6457) @geetu040[ENH] in
BaseForecaster, move check forcapability:insampleto_check_fhboilerplate (#6593) @XinyuWuu[ENH]
ForecastingOptunaSearchCVfor 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._configto 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
transformationsmodule (#6533) @fkiraly[ENH] differential testing in
dist_kernelsandclusteringmodules (#6543) @fkiraly[ENH] simplify and add differential testing to
forecasting.compose.testsmodule (#6563) @fkiraly[ENH] simplify and add differential testing to
sktime.pipelinemodule (#6565) @fkiraly[ENH] differential testing in
benchmarkingmodule (#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_checksutility for granular API compliance test setup in 2nd/3rd party libraries (#6588) @fkiraly[ENH] differential testing and minor improvements to
forecasting.basetests (#6619) @fkiraly[ENH] differential testing for
performance_metricsmodule (#6616) @fkiraly[ENH] fixes and improvements to
pytestdoctestintegration (#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
pykalmanpython 3.11 compatibility fix (#6662) @doberbauer
Maintenance#
[MNT] [Dependabot](deps): Update holidays requirement from
<0.51,>=0.29to>=0.29,<0.52(#6634) @dependabot[bot][MNT] [Dependabot](deps): Update holidays requirement from
<0.52,>=0.29to>=0.52,<0.53(#6702) @dependabot[bot][MNT] [Dependabot](deps): Update dask requirement from
<2024.6.1to<2024.6.2(#6643) @dependabot[bot][MNT] [Dependabot](deps): Update numba requirement from
<0.60,>=0.53to>=0.53,<0.61(#6590) @dependabot[bot][MNT] [Dependabot](deps): Update dask requirement from
<2024.6.2to<2024.6.3(#6647) @dependabot[bot][MNT] remove coverage reporting and
pytest-covfrom PR CI andsetup.cfg(#6363) @fkiraly[MNT]
numpy 2compatibility fixes - estimators (#6626) @fkiraly[MNT]
scipy1.14.0compatibility fordeep_equalsplugin forcsr_matrix(#6664) @fkiraly[MNT] deprecate unused
_check_soft_dependenciesargumentsuppress_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
HolidayFeaturescrashes 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_Xandrequires_ytag forFeatureUnion(#6695) @fkiraly[BUG] ensure correct setting of
requires_Xandrequires_ytag 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#
joblibis now an explicit core dependency, with bounds<1.5,>=1.2.0. Previously,joblibwas 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.0scikit-base(core dependency) bounds have been updated to>=0.6.1,<0.9.0skpro(soft dependency) bounds have been updated to>=2,<2.4.0kotsuis not longer a soft dependency required by the forecasting benchmarking framework. Thekotsupackage is no longer maintained, and its necessary imports have beend moved tosktimeas 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, seesktimeissue 5414 orpykalmanissue 109.The package fork will be maintained in
sktime.Direct users of
pykalmancan replace importsfrom pykalman import xwith equivalent importsfrom sktime.libs.pykalman import x.Indirect users via the transformer
KalmanFilterTransformerPKwill not be impacted as APIs do not change, except that they no longer require the originalpykalmanpackage 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
predictmethods for annotation labels, e.g., segments, outlier points, and atransformmethod for indicator series, for instance 1/0 indicator whether an anomaly is present at the time stamp.the
fmtargument used in some estimators is now deprecated, in favour of usingpredictortransform.The type of annotation, e.g., change points or segmentation, is encoded by the new tag
taskused 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_pointsorpredict_segments. Thepredictmethod 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,>=2to>=2,<2.4.0(#6443) @dependabot[bot][MNT] [Dependabot](deps): Update scikit-learn requirement from
<1.5.0,>=0.24to>=0.24,<1.6.0(#6462) @dependabot[bot][MNT] [Dependabot](deps): Update scikit-base requirement from
<0.8.0,>=0.6.1to>=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
cINNForecastertoCINNForecaster(#6367) @geetu040[MNT] added
joblibas 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
pykalmanissue -sktimelocal pykalman fork (#6188) @fkiraly[MNT] add systematic differential test switch to low-level tests (#6511) @fkiraly
[MNT] isolate
utilsmodule init andsktimeinit from external imports (#6516) @fkiraly[MNT] preparing refactor of benchmark framework: folding minimal
kotsulibrary intosktime(#6514) @fkiraly[MNT] run tests in
distancesmodule only if it has changed (#6517) @fkiraly[MNT] refactor
pykalmantests topytestand conditional execution (#6519) @fkiraly[MNT] conditional execution of tests in
datatypesmodule (#6520) @fkiraly
Contributors#
@Alex-JG3, @dependabot[bot], @fkiraly, @geetu040, @yarnabrina
Version 0.29.1 - 2024-05-30#
Highlights#
TransformSelectForecasterto 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
rdatapackage, insktimedata 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.50pycatch22(transformations soft dependency) bounds have been updated to<0.4.6dtw-python(distances and alignment soft dependency) bounds have been updated to>=1.3,<1.6dask(data container and parallelization back-end) bounds have been updated to<2024.5.2transformers(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_weightparameter. 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_lengthtag, which isTrueif the aligner can handle time series of unequal length, andFalseotherwise. 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_kerasmethod in deep learning classifiers has been deprecated and will be removed in 0.31.0. Users who have been using this method should instead useOneHotEncoderfromsklearndirectly, asconvert_y_to_kerasis a simple wrapper aroundOneHotEncoderwith 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
ForecastingHorizonwithpandasfreq2Yonpandas 2.2.0and above (#6500) @fkiraly[ENH] add test case for
ForecastingHorizonpandas 2.2.Xcompatibility, failure case #6499 (#6503) @fkiraly[ENH] remove
Prophetfromtest_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_paramsin 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_calibrationdocstring - 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.29to>=0.29,<0.50(#6456) @dependabot[bot][MNT] [Dependabot](deps): Update pycatch22 requirement from
<0.4.4to <0.4.6`` (#6442) @dependabot[bot][MNT] [Dependabot](deps): Update sphinx-design requirement from
<0.6.0to<0.7.0(#6471) @dependabot[bot][MNT] [Dependabot](deps): Update dask requirement from
<2024.5.1to<2024.5.2(#6444) @dependabot[bot][MNT] [Dependabot](deps): Update dtw-python requirement from
<1.5,>=1.3to>=1.3,<1.6(#6474) @dependabot[bot][MNT] include unit tests in
sktime/testsin 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
ForecastXwhenforecaster_X_exogeneous="complement"(#6433) @fnhirwa[BUG] Modified VAR code to allow
predict_quantilesof 0.5 (fixes #4742) (#6441) @meraldoantonio
Neural networks#
[BUG] Remove duplicated
BaseDeepNetworkPyTorchinnetworks.base(#6398) @luca-miniati
Time series classification#
[BUG] Resolve
LSTMFCNClassifierchangingcallbackparameter (#6239) @ArthrowAbstract[BUG] fix
_get_train_probsin some classifiers to accept any input data type (#6377) @fkiraly[BUG] fix
BaggingClassifierfor column subsampling case (#6429) @fkiraly[BUG] fix
ProximityForest, tree, stump, andIndividualBOSSreturningyof different type inpredict(#6432) @fkiraly[BUG] fix classifier default
_predictreturning integer labels always, even iffitywas not integer (#6430) @fkiraly[BUG] in
CNNClassifier, ensurefilter_sizesandpaddingis passed on (#6452) @fkiraly[BUG] fix
BaseClassifier.fit_predictandfit_predict_probaforpd-multiindexmtype (#6491) @fkiraly
Time series regression#
[BUG] Resolve
LSTMFCNRegressorchangingcallbackparameter (#6239) @ArthrowAbstract[BUG] in
CNNRegressor, ensurefilter_sizesandpaddingis passed on (#6452) @fkiraly
Transformations#
[BUG] fix to make
LabelEncodercompatible withsktimepipelines (#6458) @Abhay-Lejith
Test framework#
[BUG] allow metric classes to be called with
multilevelarg if series is not hierarchical (#6418) @fkiraly[BUG] fix
test_run_test_for_classlogic check ifONLY_CHANGED_MODULESflag isFalseand all estimator dependencies are present (#6383) @fkiraly[BUG] fix
test_run_test_for_classtest 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#
sktimenow 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_jobsparameter in theCatch22transformer has been removed. Users should pass parallelization backend parameters viaset_configinstead. To specifyn_jobs, use any of the backends supporting it in thebackend:parallelconfiguration, such as"loky"or"multithreading". Then_jobsparameter should be passed via thebackend:parallel:paramsconfiguration. 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
cINNForecastertoCINNForecaster(#6238) @geetu040[MNT]
python 3.8End-of-life andsktimesupport 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
pytsinterfaced: BOSSVS, learning shapelets, shapelet transform (#6296) @johannfaouzi (author), @fkiraly (interface)new classifiers from
tslearninterfaced: time series SVC, SVR, learning shapelets (#6273) @rtavenar (author), @fkiraly (interface)ForecastXcan 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
neuralforecastmodels 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.2arch(transformation and parameter estimation soft dependency) bounds have been updated to>=5.6,<7.1.0holidays(transformations soft dependency) bounds have been updated to>=0.29,<0.48mne(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
neuralforecastrelated changes (#6312) @yarnabrina[ENH] Option to use future-unknown exogenous variables in
ForecastXif passed inpredict(#6199) @yarnabrina[ENH] Add
optimizerparam forneuralforecastmodels (#6235) @pranavvp16[ENH] Update behavior of
freq="auto"inneuralforecastfacing estimators (#6237) @geetu040[ENH]
TBATStest parameters to cover doc example (#6292) @fkiraly
Neural networks#
[ENH] added test parameters to
CNNNetworkandResnetNetwork(#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
condasoft dependencies (#6229) @fkiraly[DOC] add missing import statements to the
InvertAugmenterdocstring example (#6236) @Anteemony[DOC] Adding Usage Example in docstring (#6264) @MihirsinhChauhan
[DOC] improve docstring formatting in probabilistic metrics (#6256) @fkiraly
[DOC]
authorstag - 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
pycatch22authors, 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.2to<2024.4.2, add new requireddataframeextra topyproject.toml. (#6282) @yarnabrina[MNT] fix isolation of
mlflowsoft dependencies (#6285) @fkiraly[MNT] add @slavik57 as a maintenance contributor for fixing
conda-forgesktime-all-extras 0.28.0release (#6308) @tm-slavik57[MNT] set GHA macos runner consistently to
macos-13(#6328) @fkiraly[MNT] [Dependabot](deps-dev): Update
holidaysrequirement from<0.46,>=0.29to>=0.29,<0.47(#6250) @dependabot[bot][MNT] [Dependabot](deps): Update
holidaysrequirement from<0.47,>=0.29to>=0.29,<0.48(#6302) @dependabot[bot][MNT] [Dependabot](deps): Update
archrequirement from<6.4.0,>=5.6to>=5.6,<7.1.0(#6307, #6309) @dependabot[bot][MNT] [Dependabot](deps): Update
pytest-xdistrequirement from<3.6,>=3.3to>=3.3,<3.7(#6316) @dependabot[bot][MNT] [Dependabot](deps): Update
mnerequirement from<1.7,>=1.5to>=1.5,<1.8(#6317) @dependabot[bot][MNT] Update
daskrequirement from<2024.2.2to<2024.4.2, add new requireddataframeextra topyproject.toml. (#6282) @yarnabrina
Fixes#
Data loaders#
[BUG] Fix
tsfdata error log and make it more precise (#6258) @pranavvp16
Forecasting#
[BUG] fix
FallbackForecasterfailing withForecastByLevelwhennan_predict_policy='raise'(#6231) @ninedigits[BUG] fix failing test in
neuralforecastauto freq, amidpandasfreqdeprecations (#6321) @geetu040
Probability distributions and simulators#
Time series clustering#
Time series regression#
[BUG] in
CNNRegressor, fixself.model not founderror 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_transformfor 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#
sktimenow supportspandas2.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-bardodependencies have been replaced by the original forkpykalman.pykalman-bardohas been merged back intopykalman, which is no longer abandoned. This is a soft dependency, and the switch does not affect users installingsktimeusing one of its dependency sets.
Deprecations and removals#
Forecasting#
in
ProphetPiecewiseLinearTrendForecaster, the seasonality parametersyearly_seasonality,weekly_seasonalityanddaily_seasonalitynow have default values ofFalse. To retain previous behaviour, set these parameters explicitly to"auto".
Transformations#
The
n_jobsparameter in theCatch22transformer is deprecated and will be removed in 0.29.0. Users should pass parallelization backend parameters viaset_configinstead. To specifyn_jobs, use any of the backends supporting it in thebackend:parallelconfiguration, such as"loky"or"multithreading". Then_jobsparameter should be passed via thebackend:parallel:paramsconfiguration. To retain previous behaviour, with a specific setting ofn_jobs=x, useset_config(**{"backend:parallel": "loky", "backend:parallel:params": {"n_jobs": x}}).The
n_jobsparameter in theCatch22Wrappertransformer has been removed. Users should pass parallelization backend parameters viaset_configinstead. To specifyn_jobs, use any of the backends supporting it in thebackend:parallelconfiguration, such as"loky"or"multithreading". Then_jobsparameter should be passed via thebackend:parallel:paramsconfiguration. 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.PAAhas been renamed toPAAlegacyin 0.27.0, andsktime.transformations.series.PAA2has been renamed toPAA.PAAis 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 ofPAAfromsktime.transformations.panel.dictionary_basedby use ofPAA2fromsktime.transformations.series.paa, switching parameter names appropriately, or 2. replace use ofPAAfromsktime.transformations.panel.dictionary_basedby use ofPAAlegacyfromsktime.transformations.panel.dictionary_based, without change of parameter values.panel.dictionary_based.SAXhas been renamed toSAXlegacyin 0.27.0, whilesktime.transformations.series.SAX2has been renamed toSAX.SAXis now the primary SAX implementation insktime, while the formerSAXwill 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 ofSAXfromsktime.transformations.panel.dictionary_basedby use ofSAX2fromsktime.transformations.series.paa, switching parameter names appropriately, or 2. replace use ofSAXfromsktime.transformations.panel.dictionary_basedby use ofSAXlegacyfromsktime.transformations.panel.dictionary_based, without change of parameter values.
Contents#
[MNT] 0.28.0 deprecations and change actions (#6198) @fkiraly
[MNT] update
temporianbound to<0.9.0,!=0.8.0(#6222) @fkiraly[MNT] revert switch from
pykalmantopykalman-bardo(#6114) @fkiraly[MNT] [Dependabot](deps-dev): Update
pytest-covrequirement from<4.2,>=4.1to>=4.1,<5.1(#6215) @dependabot[bot][MNT] [Dependabot](deps): Bump
tj-actions/changed-filesfrom 43 to 44 (#6226) @dependabot[bot][ENH] stricter condition for
get_test_paramsnot failing in repo soft dependency isolation tests (#6223) @fkiraly
Version 0.27.1 - 2024-03-25#
Highlights#
Phase 1 integration with
temporian-TemporianTransformertransformer (#5980) @ianspektor, @achoum, @javiberPhase 1 integration with
tsbootstrap-TSBootstrapAdaptertransformer (#5887) @benHeid, @astrogilda, @fkiralyShapelet transform from
pytsavailable assktimetransformer (#6082) @Abhay-LejithCatch22transformer 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) @HassnHamadaNeuralForecastRNNcan now auto-detectfreq(#6039) @geetu040time series splitters are now first-class objects, with suite tests and
check_estimatorsupport (#6051) @fkiraly
Dependency changes#
temporianis now a soft dependency forsktime(transformations)holidays(transformations soft dependency) bounds have been updated to>=0.29,<0.46dtw-pythonbounds 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=-1to return performances of all forecasters (#6031) @HassnHamada[ENH]
NeuralForecastRNNfreqauto-detect feature (#6039) @geetu040[ENH]
neuralforecastbased LSTM model by @pranavvp16 (#6047)[ENH] fix
ForecastingHorizon.freqhandling forpandas 2.2.Xby @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
Catch22transformer - support for column names, short aliases, refactor topd.Series,sktimenative parallelization (#6002) @julnow[ENH] Examples for
YtoXtransformer (#6028, #6059) @fkiraly, @geetu040[ENH] Shapelet transform interfacing
pyts(#6082) @Abhay-Lejith[ENH] Add a
test_mstlmodule checking iftransformreturns desired components by @kcentric (#6084)[ENH] Second test parameter set for Kalman Filter (#6095) @XinyuWuu
[ENH] Add
MSTLimport statement indetrendby @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_labeloption (#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
BaseDeepClassifierdocstring (#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
FourierFeaturesdocstring,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-Bto 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
BaseDeepClassifierdocstring (#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
holidaysrequirement from<0.45,>=0.29to>=0.29,<0.46(#6164) @dependabot[bot][MNT] [Dependabot](deps-dev): Update
dtw-pythonrequirement from<1.4,>=1.3to>=1.3,<1.5(#6165) @dependabot[bot][MNT] [Dependabot](deps): Bump
tj-actions/changed-filesfrom 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
catch22module fromnumbautilities (#6101) @fkiraly[MNT] Ensure Update Contributors does not run on main (#6189) @Greyisheep, @duydl
[MNT] initialize change cycle (0.28.0) for renaming
cINNForecastertoCINNForecaster(#6121) @geetu040[MNT] Fix failing tests due to
tensorflowupdate (#6098) @benHeid[MNT] silence sporadic failure in
test_evaluate_error_score(#6058) @fkiraly[MNT] update
statsforecastversion inforecastingextra (#6064) @yarnabrina[MNT] Docker files updated by (#6076) @deysanjeeb
[MNT] deprecation action timing for
Catch22changes (#6123) @fkiraly[MNT] run
update-contributorsworkflow 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
numbabounding matrix routines (#6183) @albertoazzari
Estimator registry#
Forecasting#
[BUG] Fixed
SARIMAXfailure whenXis passed to predict but notfit(#6005) @Abhay-Lejith[BUG] fix
BaseForecaster.predict_vardefault ifpredict_probais implemented (#6067) @fkiraly[BUG] In
ForecastingHorizon, ignoreValueErroronpd.infer_freqwhen index has fewer than 3 values (#6097) @tpvasconcelos
Time series classification#
Time series regression#
Transformations#
[BUG] fix
FeatureUnionfor primitive outputs (#6079) @fkiraly, @fspinna[BUG] Fix unexpected NaN values in
Summarizer(#6081) @ShreeshaM07[BUG] Update
_shapelet_transform_numba.pyto 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.59andnumbaunderpython 3.12minor documentation updates, website updates for GSoC 2024
For last non-maintenance content updates, see 0.26.1.
Dependency changes#
numbabounds have been updated to<0.60.
Deprecations and removals#
Forecasting tuners#
in forecasting tuners
ForecastingGridSearchCV,ForecastingRandomizedSearchCV,ForecastingSkoptSearchCV, thejoblibbackend specific parametersn_jobs,pre_dispatchhave been removed. Users should pass backend parameters via thebackend_paramsparameter instead. Direct replacements arebackend='joblib', andn_jobsandpre_dispatchpassed viabackend_params.
Transformations#
in
SplitterSummarizer, theremember_dataargument has been removed. Users should use thefit_onandtransform_onarguments instead. Logic identical argument replacements are:remember_data=Truewithfit_on='all_train'andtransform_on='all_train'; andremember_data=Falsewith"fit_on='transform_train'andtransform_on='transform_train'.panel.dictionary_based.PAAhas been renamed toPAAlegacyin 0.27.0, andsktime.transformations.series.PAA2has been renamed toPAA.PAAis now the primary PAA implementation insktime, while the formerPAAwill 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 ofPAAfromsktime.transformations.panel.dictionary_basedby use ofPAA2fromsktime.transformations.series.paa, switching parameter names appropriately, or 2. replace use ofPAAfromsktime.transformations.panel.dictionary_basedby use ofPAAlegacyfromsktime.transformations.panel.dictionary_based, without change of parameter values.panel.dictionary_based.SAXhas been renamed toSAXlegacyin 0.27.0, whilesktime.transformations.series.SAX2has been renamed toSAX.SAXis now the primary SAX implementation insktime, while the formerSAXwill 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 ofSAXfromsktime.transformations.panel.dictionary_basedby use ofSAX2fromsktime.transformations.series.paa, switching parameter names appropriately, or 2. replace use ofSAXfromsktime.transformations.panel.dictionary_basedby use ofSAXlegacyfromsktime.transformations.panel.dictionary_based, without change of parameter values.
Contents#
Documentation#
[DOC] improved formatting of
HierarchyEnsembleForecasterdocstring (#6008) @fkiraly[DOC] add missing
PluginParamsTransformerto API reference (#6010) @fkiraly[DOC] update contact links in code of conduct (#6011) @fkiraly
[DOC] 2024 summer programme links on
sktime.netlanding page (#6013) @fkiraly
Maintenance#
[MNT] 0.27.0 deprecations and change actions (#5974) @fkiraly
[MNT] [Dependabot](deps-dev): Update
numbarequirement from<0.59to<0.60(#5877) @dependabot[bot]
Version 0.26.1 - 2024-02-26#
Highlights#
Conditional Invertible Neural Network forecaster - from 2022 BigDEAL challenge (#5339) @benHeid
neuralforecastadapter and rnn forecaster (#5962) @yarnabrinaFallbackForecasternow supports probabilistic forecasters and setting of nan handling policy (#5847, #5924) @ninedigitsstatsforecastAutoTBATSinterface (#5908) @yarnabrinak-nearest neighbor classifiers from
pytsandtslearn(#5939, #5952) @fkiralydeep learning regressors from
sktime-dlmigrated: FCN, LSTMFCN, MLP (#6001) @nilesh05apr
Dependency changes#
dask(data container and parallelization back-end) bounds have been updated to<2024.2.2holidays(transformations soft dependency) bounds have been updated to>=0.29,<0.44pytsis 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
ARIMAfromstatsmodelslibrary (#5857) @arnaujc91[ENH] Improved specificity of some error messages in forecasters and transformations (#5882) @fkiraly
[ENH]
statsforecastAutoTBATSdirect interface estimator (#5908) @yarnabrina[ENH] Several updates in direct
statsforecastinterface estimators (#5920) @yarnabrina[ENH] Add nan policy handler for
FallbackForecaster(#5924) @ninedigits[ENH]
ForecastXoption to use future-known variables as exogenous variables in forecasting future-unknown exogenous variables (#5926) @fkiraly[ENH]
neuralforecastadapter and rnn forecaster (#5962) @yarnabrina[ENH] rearchitect
ForecastingSkoptSearchCVon abstract parallelization backend (#5973) @fkiraly[ENH] in
ForecastingPipeline, allowNoneXto 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]
pytsadapter and interface topytsROCKET(#5851) @fkiraly[ENH] in transformer dunders, uniformize coercion of
sklearntransformers (#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
Catch22Wrappertransformer to usepd.Seriestype 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
FutureWarningfor RMSE by using newerroot_mean_absolute_errorfunction (#5884) @yarnabrina[MNT] Skip
mlflowtests 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.1to<2024.1.2(#5861) @dependabot[bot][MNT] [Dependabot](deps-dev): Update dask requirement from
<2024.1.2to<2024.2.1(#5958) @dependabot[bot][MNT] [Dependabot](deps-dev): Update holidays requirement from
<0.43,>=0.29to>=0.29,<0.44(#5965) @dependabot[bot][MNT] [Dependabot](deps-dev): Update dask requirement from
<2024.2.1to<2024.2.2(#5991) @dependabot[bot]
Documentation#
[DOC] recipes for simple parameter change and deprecation management (#5875) @fkiraly
[DOC] fixing broken link to
DropNAin 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.pycorrectly (#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.Xscheduled deprecations
minor bugfix
For last non-maintenance content updates, see 0.25.1.
Dependency changes#
scikit-learnbounds have been updated to>=0.24.0,<1.5.0.
Deprecations and removals#
Benchmarking, Metrics, Splitters#
in forecasting
evaluate,kwargshave been removed. Users should pass backend parameters via thebackend_paramsparameter instead.
Data types, checks, conversions#
in
check_is_mtype, the default ofmsg_return_dicthas now changed to"dict"
Forecasting tuners#
in forecasting tuners
ForecastingGridSearchCV,ForecastingRandomizedSearchCV,ForecastingSkoptSearchCV, use ofjoblibbackend specific parametersn_jobs,pre_dispatchhas been deprecated, and will be removed insktime0.27.0. Users should pass backend parameters via thebackend_paramsparameter instead.
Time series classification#
In
SimpleRNNClassifier, thenum_epochsparameter has been renamed ton_epochs. The original parameter of namenum_epochshas now been removed.
Time series regression#
In
SimpleRNNRegressor, thenum_epochsparameter has been renamed ton_epochs. The original parameter of namenum_epochshas now been removed.
Contents#
[MNT] 0.26.0 deprecations and change actions (#5817) @fkiraly
[MNT] [Dependabot](deps-dev): Update
scikit-learnrequirement from<1.4.0,>=0.24to>=0.24,<1.5.0(#5776) @dependabot[bot][MNT] [Dependabot](deps): Bump styfle/cancel-workflow-action from
0.12.0to0.12.1(#5839) @dependabot[bot][MNT] [Dependabot](deps): Bump dorny/paths-filter from
2to3(#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:
sktimenative 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 insktimeproper and compatible third party packages. It is also used to generate mini-package headers used in lookup functionality of thesktimewebpage.author and maintainer information in the
sktimepackage 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 thesktimemaintainers. 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._yandself._Xby setting the config"remember_data"toFalseviaset_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 aPluginParamsForecasterorPluginParamsTransformerwith 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 aDeseasonalizerwhosesp(seasonality period) parameter is tuned bySeasonalityACF, estimatingspvia the ACF significance criterion on the series.The
*dunder binds to the left, for instanceDifferencer() * SeasonalityACF() * Deseasonalizer()will construct aDeseasonalizerwhosesp(seasonality period) parameter is tuned bySeasonalityACF, estimatingspvia 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.,
BaseTransformerdescendant instances, can now also returnNonein_transform, this is interpreted as empty data.
Deprecations and removals#
Transformations#
panel.dictionary_based.PAAwill be renamed toPAAlegacyinsktime0.27.0, whilesktime.transformations.series.PAA2will be renamed toPAA.PAA2will become the primary PAA implementation insktime, while the currentPAAwill 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 ofPAAfromsktime.transformations.panel.dictionary_basedby use ofPAA2fromsktime.transformations.series.paa, switching parameter names appropriately, or 2. replace use ofPAAfromsktime.transformations.panel.dictionary_basedby use ofPAAlegacyfromsktime.transformations.panel.dictionary_based, without change of parameter values.panel.dictionary_based.SAXwill be renamed toSAXlegacyinsktime0.27.0, whilesktime.transformations.series.SAX2will be renamed toSAX.SAX2will become the primary SAX implementation insktime, while the currentSAXwill 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 ofSAXfromsktime.transformations.panel.dictionary_basedby use ofSAX2fromsktime.transformations.series.paa, switching parameter names appropriately, or 2. replace use ofSAXfromsktime.transformations.panel.dictionary_basedby use ofSAXlegacyfromsktime.transformations.panel.dictionary_based, without change of parameter values.
Enhancements#
BaseObject and base framework#
[ENH] update
deep_equalsto accommodate plugins, e.g., forpolars(#5504) @fkiraly[ENH] Replace
isinstancebyobject_typetag based checks (#5657) @benheid[ENH] enable
all_tagsto retrieve estimator and object tags (#5798) @fkiraly[ENH] remove maintainer information from
CODEOWNERSin 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
BaseForecasterget 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
dispparameter toSARIMAXto control output verbosity (#5770) @tvdboom[ENH] expose parameters supported by
fitmethod ofSARIMAXinstatsmodels(#5787) @yarnabrina[ENH]
FallbackForecaster, fallback upon fail with multiple forecaster chain (#5779) @ninedigits
Parameter estimation and hypothesis testing#
[ENH] Simplify
BaseEstimator._get_fitted_params()andBaseParamFitterinheritance 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
IndividualBOSSclassifier 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
PAAandSAXtransformer implementations (#5742) @steenrotsman[ENH] feature upgrade for
SplitterSummarizer- granular control of innerfit/transforminput (#5750) @fkiraly[ENH] allow
BaseTransformer._transformto 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
joblibbackend selection (#5724) @fkiraly[BUG] handles
AttributeErrorinshow_versionswhen 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_patharg 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
MultiRocketMultivariateusesrandom_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.0to<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.6to>=5.6,<6.4.0(#5771) @dependabot[bot][MNT] [Dependabot](deps-dev): Update mne requirement from
<1.6,>=1.5to>=1.5,<1.7(#5585) @dependabot[bot][MNT] [Dependabot](deps-dev): Update dask requirement from
<2023.12.2to<2024.1.1(#5748) @dependabot[bot][MNT] improvements to modular CI framework - clearer naming,
pyprojecthandling (#5713) @fkiraly[MNT] fix faulty deprecation logic for
n_jobs,pre_dispatchin 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.0compatibility patches (#5782, #5811) @fkiraly[MNT] Code quality updates (#5786) @yarnabrina
[MNT] change cycle for making
SAX2andPAA2primary implementation renamed toSAX,PAA(#5799) @fkiraly[MNT] remove maintainer information from
CODEOWNERSin favour of estimator tags (#5808) @fkiraly[MNT] address
pd.DataFrame.groupby(axis=1)deprecation inEnsembleForecaster(#5707) @ninedigits[MNT] add missing
__author__field forMultiRocketandMultiRocketMultivariate(#5698) @fkiraly[MNT] addressing
DataFrame.groupby(axis=1)deprecation in metric classes (#5709) @fkiraly[MNT] added upper bound
pycatch22<0.4.5intransformationsdependency 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
tslearndependency version in pyproject.toml (#5686) @DManowitz[MNT] fix several spelling mistakes (#5639) @yarnabrina
Documentation#
[DOC] comment in
CONTRIBUTORS.mdthat source file isall-contributorsrc(#5687) @fkiraly[DOC] improved docstring for
TrendForecasterandPolynomialTrendForecaster(#5747) @fkiraly[DOC] improved docstring for
TimeSeriesForestClassifier(#5741) @fkiraly[DOC] fix
scitypestring 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
ReducerTransformandDirectReductionForecasterto API reference (#5690) @fkiraly[DOC] remove outdated
sktime-dlreference 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
ycan now be passed, in the form of a 2Dnp.ndarrayorpd.DataFrame, with one column per output. Thepredictmethod will then return a predicted output of the same type. To retain downwards compatibility,predictwill always return a 1Dnp.ndarrayfor univariate outputs, this is currently not subject to deprecation.Genuinely multioutput classifiers and regressors are labelled with the new tag
capability:multioutputbeingTrue. All other classifiers and regressors broadcast by column ofy, and a parallelization backend can be selected viaset_config, by setting thebackend:parallelandbackend:parallel:paramsconfiguration flags, see theset_configdocstring for details. Broadcasting extends automatically to all existing third party classifiers and regressors via base class inheritance oncesktimeis 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, ofTablescitype. The mtype specified i the tag is the guaranteed mtype ofyseen in the private_fitmethod. The default is the same as previously implicit, thenumpy1Dmtype. 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
Paneldata toSeriesdata, i.e., panel-to-series transformers, e.g., averaging. Such transformers are identified by the tagsscitype:transform-inputbeing"Panel", andscitype:transform-outputbeing"Series". An example isMerger.
Deprecations and removals#
Benchmarking, Metrics, Splitters#
time series splitters, i.e., descendants of
BaseSplitter, have moved fromsktime.forecasting.model_selectiontosktime.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 ofevaluatefor details.in forecasting
evaluate, thecomputeargument was removed, after deprecation in 0.24.0. Its purpose was to distinguish lazy or eager evaluation in thedaskparallelization backend. To switch between lazy and eager evaluation, users should instead selectdaskordask_lazyvia thebackendparameter.in forecasting
evaluate,kwargsare deprecated, removal has been moved to 0.26.0. Users should pass backend parameters via thebackend_paramsparameter 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 inpandasbasedTablemtype-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#
FunctionParamFitterfor custom parameter switching, e.g., applying forecaster or transformer conditional on instance properties (#5630) @tpvasconceloscalibration_plotfor probabilistic forecasts (#5632) @benHeidprophetbased piecewise linear trend forecaster (#5592) @sbusecustom
joblibbackends 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_predictnow allows specification ofX_predargument forpredict. If passed,X_predis used asXinpredict, instead ofX. This is useful for forecasters that expectXto be subset to the forecasting horizon.custom
joblibbackends for hierarchical and multivariate forecast broadcasting are now supported. To use a customjoblibbackend, useset_configto set thebackend:parallelconfiguration flag to"joblib", and set thebackendparameter in thedictset viabackend:parallel:paramsto the name of the customjoblibbackend. Further backend parameters can be passed in the samedict. See docstring ofset_configfor details.
Time series classification#
In
SimpleRNNClassifier, thenum_epochsparameter is deprecated and has been renamed ton_epochs.num_epochscan be used untilsktime0.25.last, but will be removed insktime0.26.0. A deprecation warning is raised ifnum_epochsis used.
Time series regression#
In
SimpleRNNRegressor, thenum_epochsparameter is deprecated and has been renamed ton_epochs.num_epochscan be used untilsktime0.25.last, but will be removed insktime0.26.0. A deprecation warning is raised ifnum_epochsis used.
Transformations#
custom
joblibbackends for hierarchical and multivariate transformer broadcasting are now supported. To use a customjoblibbackend, useset_configto set thebackend:parallelconfiguration flag to"joblib", and set thebackendparameter in thedictset viabackend:parallel:paramsto the name of the customjoblibbackend. Further backend parameters can be passed in the samedict. See docstring ofset_configfor details.
Enhancements#
BaseObject and base framework#
[ENH] improved error messages for input checks in base classes (#5510) @fkiraly
[ENH] support for custom
joblibbackends in parallelization (#5537) @fkiraly[ENH] consistent use of
np.ndarrayfor mtype tags (#5648) @fkiraly[ENH] set output format parameter in
sktimeinternalcheck_is_mtypecalls to silence deprecation warnings (#5563) @benHeid
Benchmarking, Metrics, Splitters#
Data types, checks, conversions#
[ENH]
sklearnfacing coercion utility forpd.DataFrame, tostrcolumns (#5550) @fkiraly[ENH]
deep_equals- clearer return on diffs fromdtypesandindex, relaxation ofMultiIndexequality check (#5560) @fkiraly[ENH] Uniformization of
pandasindex types in mtypes (#5561) @fkiraly[ENH]
n_featuresandfeature_namesmetadata 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
ForecastingHorizonmethod (#5539) @fkiraly[ENH] fix index name check for reduction forecasters (#5543) @fkiraly
[ENH] forecaster
fit_predictwithX_predargument forpredict(#5562) @fkiraly[ENH] refactor
DirectReductionForecaster``to use ``sklearninput coercion utility (#5581) @fkiraly[ENH] export and test
DirectReductionForecaster(#5582) @fkiraly[ENH]
prophetbased piecewise linear trend forecaster (#5592) @sbuse[ENH] Add
fit_kwargstoProphet(#5597) @tpvasconcelos[ENH]
Crostontest parameters - integer smoothing parameter (#5608) @NguyenChienFelix33[ENH]
prophetadapter - safer handling offit_kwargs(#5622) @fkiraly
Parameter estimation and hypothesis testing#
[ENH] Add new
FunctionParamFitterparameter estimator (#5630) @tpvasconcelos
Time series annotation#
Time series classification#
[ENH] enable testing
MrSQMfor persistence innsfa>0case after upstream bugfix (#5171) @fkiraly[ENH]
num_epochsrenamed ton_epochsinSimpleRNNClassifierandSimpleRNNRegressor(#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, fixstrcoercion ofpd.Seriesname (#5407) @Vasudeva-bit[BUG] in reduced regressor, copy or truncate
Xif it does not fit the forecasting horizon (#5542) @benHeid[BUG] pass correct level argument from
StatsForecastBackAdaptertostatsforecast(#5587) @sd2k[BUG] fix
HierarchyEnsembleForecasterreturned 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
_StatsModelsAdapterpredict (#5642) @ciaran-g
Transformations#
Visualization#
Maintenance#
[MNT] CI Modifications (#5498) @yarnabrina
[MNT] rename variables in base (#5502) @yarnabrina
[MNT] addressing various
pandasrelated deprecations (#5583) @fkiraly[MNT] Update pre commit hooks (#5646) @yarnabrina
[MNT] [Dependabot](deps-dev): Update
pytest-xdistrequirement from<3.4,>=3.3to>=3.3,<3.5(#5551) @dependabot[bot][MNT] [Dependabot](deps-dev): Update
daskrequirement from<2023.7.1to<2023.11.1(#5552) @dependabot[bot][MNT] [Dependabot](deps-dev): Update
daskrequirement from<2023.11.1to<2023.12.2(#5629) @dependabot[bot][MNT] [Dependabot](deps-dev): Update
holidaysrequirement from<0.36,>=0.29to>=0.29,<0.37(#5538) @dependabot[bot][MNT] [Dependabot](deps-dev): Update
holidaysrequirement from<0.37,>=0.29to>=0.29,<0.38(#5565) @dependabot[bot][MNT] [Dependabot](deps-dev): Update
holidaysrequirement from<0.38,>=0.29to>=0.29,<0.40(#5637) @dependabot[bot][MNT] [Dependabot](deps-dev): Update
sphinx-galleryrequirement from<0.15.0to<0.16.0(#5566) @dependabot[bot][MNT] [Dependabot](deps-dev): Update
pytest-xdistrequirement from<3.5,>=3.3to>=3.3,<3.6(#5567) @dependabot[bot][MNT] [Dependabot](deps-dev): Update
pycatch22requirement from<0.4.4to<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.ipynbpanel data loading example (#5594) @fkiraly[DOC] forecasting
evaluateutility - 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#
torchadapter, LTSF forecasters - linear, D-linear, N-linear (#4891, #5514) @luca-miniatimore period options in
FourierFeatures:pandasperiod alias and from offset column (#5513) @Ram0nBiisignaturebackend option forSignatureTransformer(#5398) @sz85512678TimeSeriesForestClassifierfeature importance and optimized interval generation (#5338) @YHallouardall stationarity tests from
archpackage 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_formatinsavemethod andmlfowplugin, support forcloudpickle(#5486, #5526) @achieveordie
Dependency changes#
holidays(transformations soft dependency) bounds have been updated to>=0.29,<0.36.torchis now a managed soft dependency for neural networks (dltest set)
Core interface changes#
if using
scikit-base>=0.6.1:set_paramsnow 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.,ForecastingGridSearchCVgrids, and estimators internally usingset_params. The behaviour ofget_paramsis unchanged.sktimenow supportscloudpicklefor estimator serialization, withpicklebeing the standard serialization backend. To select the serialization backend, use theserialization_formatparameter of estimators’savemethod.cloudpickleis already a soft dependency, therefore no dependency change is required.
Enhancements#
BaseObject and base framework#
[ENH] test that
set_paramsrecognizes 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
sktimeonboard 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
mlflowplugin, improve informativity ofModuleNotFoundErrormessages (#5487) @achieveordie[ENH] Add support for DL estimator persistence in
mlflowplugin (#5526) @achieveordie
Neural networks#
[ENH]
pytorchadapter 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
archpackage (#5439) @Vasudeva-bit
Time series annotation#
[ENH] Add unit tests for change point and segmentation plotting functions (#5509) @adamkells
Time series classification#
[ENH]
TimeSeriesForestClassifierfeature importance and optimized interval generation (#5338) @YHallouard
Transformations#
[ENH] Add Hyperbolic Sine transformation and its inverse (ScaledAsinhTransformer) (#5389) @ali-parizad
[ENH]
iisignaturebackend option forSignatureTransformer(#5398) @sz85512678[ENH] general inverse transform for
MSTLtransformer (#5457) @fkiraly[ENH] more period options in
FourierFeatures:pandasperiod alias and from offset column (#5513) @Ram0nB
Maintenance#
[MNT] Auto format pyproject (#5425) @yarnabrina
[MNT] bound
pycatch22<0.4.4due 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
basemodule (#5313) @yarnabrina[MNT] fix typos in
forecastingmodule (#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
pandasconstructor deprecation message fromExpandingGreedySplitter(#5500) @fkiraly[MNT] address deprecation of
pd.DataFrame.fillnawithmethodarg (#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
STLTransformerto correct statements on inverse and pipelines (#5455) @fkiraly[DOC] improved docstrings for
statsforecastestimators (#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
pandasFutureWarningfor 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-Xtag 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#
pykalmandependencies have been replaced by the forkpykalman-bardo.pykalmanis abandoned, andpykalman-bardois a maintained fork. This is a soft dependency, and the switch does not affect users installingsktimeusing one of its dependency sets. Mid-term, we expectpykalman-bardoto 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_variablehas been switched fromTruetoFalse.
Contents#
[MNT] Update
numbarequirement from<0.58,>=0.53to>=0.53,<0.59(#5299, #5319) @dependabot[bot], @fkiraly[MNT] [Dependabot](deps-dev): Update
skprorequirement from<2.1.0,>=2.0.0to>=2.0.0,<2.2.0(#5396) @dependabot[bot][MNT] [Dependabot](deps-dev): Update
holidaysrequirement from<0.34,>=0.29to>=0.29,<0.35(#5342) @dependabot[bot][MNT] Migrate from
pykalmantopykalman-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,daskviaset_config(#5267, #5268, #5301, #5311, #5405) @fkiralyPeakTimeFeaturestransformer to generate indicator features for one or multiple peak hours, days, etc (#5191) @ali-parizadARCH forecaster interfacing
archpackage (#5326) @Vasudeva-bitforecasting reducer
YfromXnow makes probabilistic forecasts when usingskproprobabilistic tabular regressors (#5271) @fkiralyforecasting compositors
ForecastXnow allows fittingforecaster_yon 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#
attrsis no longer a soft dependency (time series annotation) ofsktimearchis now a soft dependency (forecasting) ofsktimeskprois now a soft dependency (forecasting) ofsktime
Core interface changes#
BaseObject and base framework#
the
sktimeframework 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 utilityscitypeis also unaffected. For extenders, the change enables polymorphic and dynamically typed estimators.warnings from
sktimecan now be silenced on a per-estimator basis via thewarningsconfig that can be set viaset_config(see docstring).
Forecasting#
hierarchical and multivariate forecasts can now use parallelization and distributed backends, including
joblibanddask, if the forecast is obtained via broadcasting. To enable parallelization, set thebackend:paralleland/or thebackend:parallel:paramsconfiguration 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.DataFrameasy. 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
joblibanddask, if the transformation is obtained via broadcasting. To enable parallelization, set thebackend:paralleland/or thebackend:parallel:paramsconfiguration 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_selectiontosktime.split. The old locationmodel_selectionis 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
utilsmodule (#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
evaluateto 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
CurveFitForecasterbased onscipyoptimize_curve(#5240) @benHeid[ENH] Restructure the
trendforecasters module (#5242) @benHeid[ENH] Link
test_interval_wrappers.pyto changes inevaluatefor conditional testing (#5337) @fkiraly[ENH]
joblibanddaskbackends in broadcasting of estimators in multivariate or hierarchical case - part 1,VectorizedDF.vectorize_est(#5267) @fkiraly[ENH]
joblibanddaskbackends in broadcasting of estimators in multivariate or hierarchical case - part 2, base class config (#5301) @fkiraly[ENH] ARCH model interfacing
archpackage (#5326) @Vasudeva-bit[ENH] in
ForecastX, enable fittingforecaster_yon forecastedX(#5334) @benHeid[ENH] Skip unnecessary fit in
ForecastXif innerforecaster_yignoresX(#5353) @yarnabrina[ENH] remove legacy except in
TestAllEstimatorsforpredict_proba(#5386) @fkiraly
Time series alignment#
Time series distances and kernels#
Time series regression#
[ENH] in
BaseRegressor, allowyto be 1Dpd.DataFrame(#5282) @mdsaad2305
Transformations#
[ENH]
PeakTimeFeaturestransformer 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_transformtoSTLTransformer(#5300) @fkiraly[ENH]
joblibanddaskbackends in broadcasting of estimators in multivariate or hierarchical case - part 1,VectorizedDF.vectorize_est(#5267) @fkiraly[ENH]
joblibanddaskbackends in broadcasting of estimators in multivariate or hierarchical case - part 2, base class config (#5301) @fkiraly[ENH] Refactor of
DateTimeFeaturestests topytestfixtures (#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
distutilscalls with equivalent functionality (#5376) @fkiraly[MNT] removed
py37.dockerfileand 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.mdbadges table (#5263) @fkiraly[DOC] forecasting extension template - add insample capability tags (#5272) @fkiraly
[DOC] add
blogbadge forfkiraly, for ODSC blog post (#5291) @fkiraly[DOC] speed improvement of
partition_based_clusteringnotebook (#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
axargument and the figure inplot_series(#5325) @ShreeshaM07
Fixes#
Benchmarking, Metrics, Splitters#
Forecasting#
[BUG] fix
STLForecastertagignores-exogeneous-Xto be correctly set for composites (#5365) @yarnabrina[BUG]
statsforecast 1.6.0compatibility - instatsforecastadapter, fixingRuntimeError: dictionary changed size during iteration(#5317) @arnaujc91[BUG]
statsforecast 1.6.0compatibility - fix argument differences betweensktimeandstatsforecast(#5393) @luca-miniati[BUG] Fix
ARCH._check_predict_proba(#5384) @Vasudeva-bit
Time series alignment#
Time series distances and kernels#
[BUG] Fix
numbaerrors when callingtslearnlcss(#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
tslearndistances and kernels are now available insktime(#5039) @fkiralynew transformer:
VmdTransformer(variational mode decomposition) -vmdpyis now maintained insktime(#5129) @DaneLyttinen, @vrcarvanew transformer: interface to
statsmodelsMSTL (#5125) @luca-miniatinew classifier:
MrSEQLtime series classifier (#5178) @lnthach, @heerme, @fkiralynew
sktimenative probability distributions: Cauchy, empirical, Laplace, Student t (#5050, #5094, #5161) @Alex-JG3, @fkiraly
Dependency changes#
sktimenow supportspandas2.1.Xsktimenow supportsholidays0.32 (soft dependency)sktimenow supportsstatsforecast1.6.X (soft dependency)
Core interface changes#
Transformations#
Transformations (
BaseTransformerdescendants) now have two new optional tags:"capability:inverse_transform:range"and"capability:inverse_transform:exact". The tags should be specified in the_tagsclass attribute of the transformer, in case the transformer implementsinverse_transformand 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_transformis 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
ForecastingGridSearchCVtowards free kwarg methods in estimators, e.g., graphical pipeline (#5210) @benHeid[ENH] make
statsforecastadapter compatible with optionalpredictlevelarguments, and different init param sets (#5112) @arnaujc91[ENH] fix
test_set_freq_hierforpandas 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_metricsby 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
cythonbased estimators (#5206) @fkiraly
Maintenance#
[MNT] upgrade CI runners to latest stable images (#5031) @yarnabrina
[MNT] bound
statsforecast<1.6.0due 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
DateTimeFeaturestests (#5154) @fkiraly[MNT] move fixtures in
test_reduce_globaltopytestfixtures (#5157) @fkiraly[MNT] move fixtures in
test_dropnatopytestfixtures (#5153) @fkiraly[MNT] Extra dependency specifications per component (#5136) @yarnabrina
[MNT] autoupdate for copyright range in
sphinxdocs (#5212) @fkiraly[MNT] move
Pipelineexception fromtest_all_estimatorsto test_config(#5251) @fkiraly[MNT] Update versions of pre commit hooks and fix
E721issues 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_forecastingdata docstrings (#5065) @hazrulakmal[DOC] minor docstring typo fixes in
_DelegatedForecastermodule (#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
ColumnEnsembleForecasterdocstring, addColumnEnsembleTransformerexample (#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_splitdocstring (#5216) @JonathanBechtel[DOC] update to README badges: license, tutorials, and community further up (#5227) @fkiraly
[DOC] Simple edits to make
STLForecasterdocstring 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
BaseWindowSplitterget_n_splitmethod for hierarchical data (#5012) @hazrulakmal
Forecasting#
[BUG] fix check causing exception in
ConformalIntervalsin_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
returnstatement fory_dictin tests for composite forecasters (#5253) @BensHamza[BUG] Fix missing
y_trainkey iny_dictin tests for composite forecasters (#5255) @fkiraly[BUG] Fix
ForecastKnownValuesfailure 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
deprecatedhas 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=Falsebehaviour by 0.21.last, and to removelegacy_interfacearguments after 0.22.0 and before 0.23.0. Users who need more time to upgrade dependent code can setlegacy_interface=Trueuntil 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_weekfeature has been added to the"comprehensive"feature set. Users who would like to continue using the previous feature set should use the argumentmanual_selectioninstead.
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, @yarnabrinaDropNAtransformer to drop rows or columns with nan (#5049) @hliebertExpandingGreedySplitterfor slicing test sets from end (#4917) @davidgilbertsonstatsforecastinterfaces: 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
Panelmtypes as input, from onlydf-listpreviously. 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_locand tag to control dispatch ofsplit_seriestosplitvssplit_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
numpyweights in performance metrics (#5086) @fkiraly[ENH] input checks for
BaseBenchmark, allowadd_estimatorto accept multiple estimators (#4877) @hazrulakmal[ENH] tests and fixes for
numpyweights 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_metricsusing properpytestfixtures (#4946) @julia-kraus[ENH] add expanding greedy splitter (#4917) @davidgilbertson
[ENH] Interface
statsforecastMSTL,statsforecastback-adapter (#4865) @luca-miniati[ENH] contiguous
fhoption forFhPlexForecaster(#4926) @fkiraly[ENH] ensure robustness of
StatsForecastBackAdapterw.r.t. change ofpredict_intervalreturn format (#4991) @fkiraly[ENH] improve
SARIMAXtest parameter coverage (#4932) @janpipek[ENH] interface to
statsforecastARCH family estimators (#4938) @eyjo[ENH] add test cases for
CrostonandExponentialSmoothing(#4935) @Gigi1111[ENH] applying forecasting metrics disregarding index - docstrings and tests (#4960) @fkiraly
[ENH] alias strings for
scoringargument in forecasting tuners (#5058) @fkiraly[ENH] allow
YfromXto take missing data (#5062) @eenticott-shell
Parameter estimators#
Probability distributions and simulators#
Time series alignment#
[ENH] edit distance alignment algorithms from
sktimenativenumbabased aligners (#5075) @fkiraly[ENH] extend
BaseAligner.fitwith 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
holidayspackage (#4893) @yarnabrina[ENH]
HolidayFeaturestransformer (#4909) @VyomkeshVyas[ENH] enable use of
TabularToSeriesAdaptorwith feature selectors, and passing ofy(#4978) @fkiraly[ENH] speed up
BaseTransformerchecks and conversion boilerplate (#5036) @fkiraly[ENH]
DropNAtransformer 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
sklearndependency 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
statsforecastto thepandas2compatible dependency set (#4878) @fkiraly[MNT] bound
dask<2023.7.1to 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
ElasticEnsembleclassifier doctest (#4981) @fkiraly[MNT] rename
TestedMockClasstoMockTestedClass(#5005) @fkiraly[MNT] updated sphinx intersphinx links for other libraries (#5016) @yarnabrina
[MNT] fix duplication of
pytestdurationsparameter 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
scoringin 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
scitypeinBaseClusterer(#4958) @achieveordie
Transformations#
[BUG] fix
DataConversionWarninginFeatureSelection(#4883) @fkiraly[BUG] Fix forecaster based imputation strategy in
Imputerif forecaster requiresfhinfit(#4999) @MCRE-BE[BUG] Fix
Differencer.inverse_transformon train data ifna_handling=fill_zero(#4998) @benHeid, @MCRE-BE[BUG] fix wrong logic for
index_out="shift"inLagtransformer (#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#
sktimeis now compatible withsklearn 1.3.Xstart 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-learnversion bounds now allow versions1.3.Xthe
deprecatedpackage 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.pycatch22has 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_quantilesandpredict_intervalswill 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_interfacewill beTrue. In the late phase (0.22.X), the default value oflegacy_interfacewill 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_interfaceargument 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=Falsebehaviour by 0.21.last, and to removelegacy_interfacearguments after 0.22.0 and before 0.23.0. Users who need more time to upgrade dependent code can setlegacy_interface=Trueuntil 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 theBaseForecasterclass. This config controls the contract that thecheck_estimatorandpytesttests 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_quantilesor_predict_intervalshaving 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_configcall 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_quantilesand_predict_intervalswith alegacy_interfaceargument before 0.22.0, the default of which should beFalsefrom 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_interfaceargument can be removed after 0.23.0. This will result in the same transition experience for users of the extenders’ forecasters as for users ofsktimeproper.
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.0with dynamic error metic based onpartialintest_make_scorer(#4915) @fkiraly[MNT] xfail
mlflowfailure #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
sklearnbound to<1.4.0(#4778) @fkiraly[MNT] 0.21.0 release action - add back
pycatch22as 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 -
statsmodelsAutoReginterface (#4774) @CTFallon, @mgazian000, @JonathanBechtelnew forecaster - by-horizon
FhPlexForecaster, for different estimator/parameter per horizon (#4811) @fkiralynew transformer -
SplitterSummarizerto apply transformer by fold (#4759) @BensHamzaColumnEnsembleTransformer-remainderargument (#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
strcoercion, e.g.,str(my_pipeline), and deserialize viasktime.registry.craft : str -> object. The deserializercraftis a pseudo-inverse of the serializerstrfor 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.depsandregistry.importscomplement 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 -> strproduces a code block of all python compilable imports required to craft the serialized object.the tag
python_dependencies_aliaswas 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=Noneintransformwithout 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]
_HeterogenousMetaEstimatorto 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
ForecastingHorizonto useIndexbasedcutoffin 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]
statsmodelsAutoReginterface (#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
locof another splitter (#4851) @fkiraly[ENH] set
ForecastXmissing data handling tag toTrueto properly cope with future unknown variables (#4876) @fkiraly
Time series classification#
[ENH] ensure
BaggingClassifiercan 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 controlpaddingandfilter_sizelogic (#4784) @alan191006
Time series regression#
[ENH] migrate MCDCNN classifier, regressor, network from
sktime-dl(#4637) @achieveordie
Transformations#
[ENH] allow
X=NoneinBaseTransformer.transform(#4112) @fkiraly[ENH] Add
hour_of_weekoption toDateTimeFeaturestransformer (#4724) @VyomkeshVyas[ENH]
ColumnEnsembleTransformer-remainderargument (#4789) @fkiraly[ENH]
SplitterSummarizertransformer to apply transformer by fold (#4759) @BensHamza
Visualisations#
Maintenance#
[MNT] Temporarily skip all DL Estimators (#4760) @achieveordie
[MNT] address deprecation of
sklearnif_delegate_has_methodin 1.3 (#4764) @fkiraly[MNT] bound
tslearn<0.6.0due 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
tslearnon thepandas 2testing dependency set (#4825) @fkiraly[MNT] skip failing
test_transform_and_smooth_fponmain(#4836) @fkiraly[MNT] unpin
sphinxand 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.0compatibility issues (#4860) @fkiraly, @hazrulakmal[MNT] remove forgotten
deprecatedimport 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
ColumnSelecttypos 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
_BaseWindowForecasterto handle simultaneous in and out-of-sample forecasts (#4812) @felipeangelimvieira[BUG] fix for
make_reductionwith unequal panels time index forglobalpooling (#4644) @kbpk[BUG] allows probabilistic predictions in
DynamicFactorin presence of exogenous variables by (#4758) @yarnabrina[BUG] Fix
predict_residualsinternal 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), withsktimedependencies already having dropped support.pre-commit and coding style upgrades (3.8 plus)
scheduled 0.20.0 deprecation actions
Dependency changes#
numpyversion 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-basebound 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#
statsforecastAutoETSandAutoCESinterfaces (#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#
ForecastingHorizonand forecasters’fit,predictnow supportrangeas input. Caveat:range(n)starts at0and ends atn-1. For ann-step-ahead forecast, including allninteger steps in the horizon, passrange(1, n+1).
Enhancements#
Forecasting#
[ENH]
statsforecastAutoETSdirect interface estimator (#4648) @yarnabrina[ENH]
statsforecastAutoCESdirect interface estimator (#4649) @yarnabrina[ENH] improved
BaseForecasterexception messages, with reference toselfclass name (#4699) @fkiraly[ENH] support passing horizons as
rangeobject inForecastingHorizonand infitandpredictmethods (#4716) @yarnabrina
Time series classification#
[ENH] migrate
ResNetRegressorfromsktime-dl(#4638) @achieveordie
Documentation#
Maintenance#
[MNT] resolve pre-commit issues on
main(#4673) @yarnabrina[MNT] except some DL and
numbabased 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
skbaseto default package version display ofshow_versions(#4694) @fkiraly
Fixes#
BaseObject#
[BUG] fix
clone/set_paramswith nestedsklearnobjects (#4707) @fkiraly, @hazrulakmal
Benchmarking#
[BUG] bugfix for
no-update_paramsstrategy 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 2is now fully supported. Allsktimenative functionality remains compatible withpandas 1,>=1.1.0.scheduled deprecation of
tensorflowbased probability interface.
Dependency changes#
pandasversion bounds now allow versions2.0.Xin addition to currently supportedpandas 1versions. This concludes the interim period for experimental support and begins full support forpandas 2, with aim to support anypandas 2version.tensorflow-probabilityis 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-probabilityis no longer a dependency or soft dependency, it has also been removed from all dependency sets (includingdl)
Forecasting#
The
legacy_interfaceargument has been removed from forecasters’predict_proba. The method now always returns aBaseDistributionobject, 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#
sktimenow has a generic adapter class tostatsforecast(#4539, #4629) @yarnabrinastatsforecastAutoThetawas added with direct interface using this, more to follow (#4539) @yarnabrinathe time series alignment module has been updated: extension template for aligners (#4613),
numbabased alignment paths are availableassktimealigners (#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-baseconfig systema
quantilemethod was added, which returns a table of quantiles in the same format asBaseForecaster.predict_quantilesreturn quantile forecastsa
ppfmethod 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]
statsforecastAutoThetadirect 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
_StatsForecastAdapterin 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-probabilityto<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
holidaysto avoid error inProphet, later reverted (#4594, #4600) @fkiraly, @yarnabrina[MNT] remove
tsfreshpython version bounds from estimators (#4573) @fkiraly[MNT] excepting
FCNClassifierfrom CI to prevent memouts until bugfix (#4616) @fkiraly[MNT] address
kulsinskideprecation inscipy(#4618) @fkiraly[MNT] remove forgotten
legacy_interfacereference fromcheck_is_scitypedocstring (#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.rstwrong imports (#4593) @mdsaad2305[DOC] change
sktimelogos to vector graphicsvg(#4606) @fkiraly[DOC] Remove white fill from
svgandpngsktimelogos (#4607) @fkiraly[DOC]
AutoETSdocstring - 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_interfacereference fromcheck_is_scitypedocstring (#4630) @fkiraly[DOC] adding doctest guide to the testing documentation (#4634) @mdsaad2305
Fixes#
BaseObject, BaseEstimator#
Forecasting#
[BUG] corrected default logic for
_predict_intervalin case_predict_quantilesis not implemented but_predict_probais (#4529) @fkiraly[BUG]
RecursiveReductionForecasterpandas 2 fix (#4568) @fkiraly[BUG] in
_StatsModelsAdapter, avoid passingexogtoget_predictionofstatsmodelsin_predict_intervalif parameter is not supported (#4589) @yarnabrina[BUG] fix incorrect sorting of
n_best_forecasters_inBaseGridCVif metric’slower_is_betterisFalse(#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
ABCinheritance and RNNfitoverride (#4527) @achieveordie @fkiraly
Time series regression#
[BUG] fix broken RNN regressor (#4531) @achieveordie
[BUG] fix bug from clash between
ABCinheritance and RNNfitoverride (#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#
numbahas been changed to be a soft dependency. Allnumbabased estimators continue working unchanged, but require explicitnumbainstallation.the base module of
sktimehas been factored out toscikit-base, the abstract base layer forscikit-learnlike packages maintained bysktimepandas 2support continues in testing/experimental period until 0.18.last. Allsktimenative functionality ispandas 2compatible, 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
tensorflowbased probability interface andVectorizedDFmethods.
Dependency changes#
numbais no longer a core dependency, it has changed to soft dependencyscikit-baseis a new core dependency
Deprecations and removals#
Dependencies#
numbahas changed from core dependency to soft dependency insktime 0.18.0. To ensure functioning of setups ofsktimecode dependent onnumbabased estimators going forward, ensure to installnumbain the environment explicitly, or install theall_extrassoft dependency set which will continue to containnumba. Besides this,numbadependent 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-probabilitywill cease to be a soft dependency from 0.19.0, as the only dependency locus (forecasters’ oldpredict_probareturn type) is being deprecated.
Data types, checks, conversions#
VectorizedDF.get_iloc_indexerwas removed. Developers and users should useiter,__iter__, orget_iter_indicesinstead.
Forecasting#
forecasters’
predict_probanow by default returns aBaseDistribution. The oldtensorflow-probabilitybased return from pre-0.17.0 can still be obtained by setting the argumentlegacy_interface=Falseinpredict_proba. This is useful for handling deprecation.from 0.19.0, the
legacy_interfaceargument will be removed frompredict_proba, together with the option to returntensorflow-probabilitybased returns.
pandas 2 upgrade and testing#
support for
pandas 2is 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):
sktimewill have a dependency bound ofpandas<2.0.0sktimewill aim to be compatible withpandas 2.0.Xas well aspandas 1, >=1.1.0,sktimecan be run and tested withpandas 2.0.Xby force-installingpandas 2.0.Xestimators can be tested for
pandas 2compatibility viacheck_estimatorunder force-installedpandas 2.0.Xreports on compatibility issues are appreciated in #4426 (direct input or link from)
in the full support period (0.19.0-onwards):
sktimerequirements will allowpandas 2.0.Xand extend support withpandasreleasessktimewill aim to be compatible withpandas 2(any version), as well aspandas 1, >=1.1.0users choose their preferred
pandasversion by requirements on their downstream environmentthe bug and issue trackers should be used as normal
List of PR#
[MNT] 0.18.0 change action -
numbaas soft dependency (#3843) @fkiraly[MNT] ensure
predict_probacalls inmlflowforecasting interface explicitly calllegacy_interface(#4514) @fkiraly[MNT]
skbaserefactor - part 1:BaseObjectand package dependencies (#3151) @fkiraly[MNT]
skbaserefactor - part 2:all_estimatorslookup (#3777) @fkiraly[ENH]
quantilemethod for distributions, default implementation of forecasterpredict_quantilesifpredict_probais present (#4513) @fkiraly[ENH] add test for
all_estimatorstag 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) @yarnabrinaInceptionTimeclassifier fromsktime-dlmigrated (#3003) @tobiasweedeSplitterBootstrapTransformerfor booststrapping based on any splitter (#4455) @fkiralyIxToXtransformer 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 (
Baseforecasterdescendants) 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 (
BaseClassifierdescendants) 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_intervaltoSARIMAXto supportpredict_intervalandpredict_quantiles(#4439) @yarnabrina[ENH] shift
ForecastingHorizon-BaseForecastercutoffinterface to rely on public point (#4456) @fkiraly[ENH] testing in-sample forecasting - replace try/except in
test_predict_time_indexby tag and tag dependent contract (#4476) @fkiraly[ENH] remove monotonicity requirement from quantile prediction contract (#4480) @fkiraly
[ENH] remove superfluous implementation checks in
_predict_intervaland_predict_quantilesofBaseForecaster(#4481) @yarnabrina[ENH] testing all forecasters
predict_quantiles,predict_intervalin-sample (#4470) @fkiraly[ENH] performant re-implementation of
NaiveForecaster-"last"strategy (#4461) @fkiraly[ENH] adds
_predict_intervalin_StatsModelsAdapterand 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_probacapability tag for classifiers (#4012) @fkiraly[ENH] migrate
InceptionTimeclassifier and example (fromsktime-dl) (#3003) @tobiasweede
Time series regression#
Transformations#
Testing framework#
Maintenance#
[MNT] Changed line endings of
ElectricDevices.csvandGunPoint.csvfromCRLFtoLF(#4452) @yarnabrina[MNT] ensure all elements in test matrix complete runs (#4472) @fkiraly
[MNT] add
InceptionTimeClassifierandLSTMFCNClassifieras direct module export (#4484) @fkiraly[MNT] address some warnings and deprecation messages from dependencies (#4486) @fkiraly
Documentation#
[DOC] Fix error in
MiniRocketexample code - wrong transformer (#4497) @doncarlos999[DOC] add
InceptionTimeClassifierandLSTMFCNClassifierto 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
sktimeon the readthedocs landing page (#4444) @howdy07
Fixes#
Forecasting#
[BUG] fix
pandaswrite error in probabilistic forecasts ofBaggingForecaster(#4478) @fkiraly[BUG] fix
predict_quantilesin_PmdArimaAdapterand_StatsForecastAdapterpost 0.17.1 (#4469) @fkiraly[BUG]
ForecastingHorizonconstructor - override erroneously inferredfreqattribute from regularDatetimeIndexbased horizon (#4466) @fkiraly, @yarnabrina[BUG] fix broken
DynamicFactor._predict_interval(#4479) @fkiraly[BUG] fix
pmdarimainterfaces breaking forXcontaining more indices than forecasting horizon (#3667) @fkiraly, @SzymonStolarski[BUG] fix
BATSandTBATS_predict_intervalinterface (#4492, #4505) @fkiraly`[BUG] fix
VECM._predict_intervalinterface 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 2compatibility patchexperimental support for
pandas 2with testing and upgrade instructions for userssktimewill continue to supportpandas 1versions
User feedback and pandas 2 compatibility issues are appreciated in #4426.
Dependency changes#
the version bound
pandas<2.0.0will be relaxed topandas<2.1.0insktime 0.19.0option 1: to keep using
pandas 1.Xfrom0.19.0onwards, simply introduce thepandas<2.0.0bound 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 ofpandasbound insktimerequirements
attrschanges from an implied (non-explicit) soft dependency to an explicit soft dependency (inall_extras)
pandas 2 upgrade and testing#
support for
pandas 2will 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):
sktimewill have a dependency bound ofpandas<2.0.0sktimewill aim to be compatible withpandas 2.0.Xas well aspandas 1, >=1.1.0,sktimecan be run and tested withpandas 2.0.Xby force-installingpandas 2.0.Xestimators can be tested for
pandas 2compatibility viacheck_estimatorunder force-installedpandas 2.0.Xreports on compatibility issues are appreciated in #4426 (direct input or link from)
in the full support period (0.19.0-onwards):
sktimerequirements will allowpandas 2.0.Xand extend support withpandasreleasessktimewill aim to be compatible withpandas 2(any version), as well aspandas 1, >=1.1.0users choose their preferred
pandasversion 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.aggandSeries.agg(#4435) @fkiraly[MNT] address deprecation of automatic drop on
DataFrame.aggon non-numeric columns (#4436) @fkiraly[MNT] resolve
freqrelated deprecations andpandas 2failures in reducers (#4438) @fkiraly[MNT] except
Prophetfromtest_predict_quantilesdue to sporadic failures (#4432) @fkiraly[MNT] except
VECMfromtest_predict_quantilesdue to sporadic failures (#4442) @fkiraly[MNT] fix and sharpen soft dependency isolation logic for
statsmodelsandpmdarima(#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:
ForecastKnownValuesforn known or expert forecasts (#4243) @fkiraly
Dependency changes#
a new soft dependency was added, the
seasonalpackage, required (only) for theSeasonalityPeriodogramestimator.
Core interface changes#
BaseObject, BaseEstimator#
all
sktimeobjects and estimators now possess a config interface, via newget_configandset_configmethods. This is currently experimental, and there are no externally facing config fields at the moment.
Data types, checks, conversions#
sktimenow recognizes nullablepandasdtypesand coerces them to non-nullable if necessary. Previously, nullabledtypewould cause exceptions.
Forecasting#
the
BaseDistributionobject 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_probanow returns ansktimeBaseDistributionobject, iftensorflow-probabilityis not present (e.g., on python 3.11), or if the temporary deprecation argumentlegacy_interface=Falseis set. The oldtensorflowbased interfaced will be deprecated over two cycles, see below.sktimenow contains metrics and losses for probability distribution forecasts. These metrics assumeBaseDistributionobjects as forecasts.
Deprecations and removals#
Dependencies#
numbawill change from core dependency to soft dependency insktime 0.18.0. To ensure functioning of setups ofsktimecode dependent onnumbabased estimators going forward, ensure to installnumbain the environment explicitly, or install theall_extrassoft dependency set which will continue to containnumba. Besides this,numbadependent 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_probapre-0.17.0tensorflowbased return will be replaced byBaseDistributionobject based return. This will be phased out in two minor cycles as follows.until 0.18.0, forecasters’
predict_probawill returnBaseDistributionby default only in cases where callingpredict_probawould have raised an error, prior to 0.17.0, i.e., on python 3.11 and whentensorflow-probabilityis not present in the python environment.until 0.18.0,
BaseDistributionreturn can be enforced by setting the new argumentlegacy_interface=Falseinpredict_proba. This is useful for handling deprecation.from 0.18.0, the default for
legacy_interfacewill be set toFalse.from 0.19.0, the
legacy_interfaceargument will be removed frompredict_proba, together with the option to returntensorflow-probabilitybased returns.
Transformations#
DateTimeFeatures: the default value of thekeep_original_columnsparameter has changed toFalseFourierFeatures: the default value of thekeep_original_columnsparameter has changed toFalse
Testing framework#
in
check_estimatorandrun_tests, thereturn_exceptionsargument 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
floatdtype inpandasconversions (#4245) @fkiraly[ENH]
is_equal_indexmetadata 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
_ColumnEnsembleForecasterto new base mixin (#4231) @fkiraly[ENH]
ForecastKnownValuesforecaster 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]
BaseForecastingErrorMetricinternal 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
stepsarg (#4371) @fkiraly
Parameter estimators#
Time series classification#
Transformations#
[ENH] transformer interfacing
numpy.fftfor simple fourier transform (#4214) @blazingbhavneek[ENH]
sktimenative column ensemble transformer (#4232) @fkiraly[ENH] refactoring segmentation transformers to use
pandasnative data types (#4267) @fkiraly[ENH] remove test for output values in
test_FeatureUnion_pipeline(#4316) @fkiraly[ENH] Hodrick-Prescott filter transformer (
statsmodelsinterface) (#4342) @ken-maeda[ENH] turn
BKFilterinto a directstatsmodelsinterface (#4346) @fkiraly[ENH] Christiano-Fitzgerald filter transformer (
statsmodelsinterface) (#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_intervalcoverageandtest_predict_quantilesalphain forecaster contract tests (#4394) @yarnabrina
Maintenance#
[MNT] address deprecation of
pandas.DataFrame.iteritems(#4271) @fkiraly[MNT] Fixes linting issue
B016 Cannot raise a literalindistancesmodule (#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
pytestfailure - downgradedashto <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
ContractableBOSStyped_dictparameter (#4331) @fkiraly[MNT] except forecasters failing proba prediction tests (previously masked by buggy tests) (#4364) @fkiraly
[MNT] split up
transformations.composeinto submodules (#4368) @fkiraly[MNT] replace emergency
dashbound 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,registrymodules (#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
clusteringmodule (#4318) @SamiAlavi[MNT] Fix linting issues in
forecastingmodule (#4319) @SamiAlavi[MNT] Fixes linting issues in
annotationmodule (#4309) @SamiAlavi[MNT] Fix linting issues in
series_as_features,tests,dist_kernels,benchmarkingmodules (#4321) @SamiAlavi[MNT] Fixes linting issues in
classificationmodule (#4311) @SamiAlavi[MNT] Fix linting issues in
performance_metricsmodule (#4320) @SamiAlavi[MNT] Fix linting issues in
utilsmodule (#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.netaddresses (#4241) @fkiraly[DOC] improved reducer docstring formatting (#4160) @fkiraly
[DOC] improve docstring for
VectorizedDF.itemsand.__iter__(#4223) @fkiraly[DOC] direct documentation links to
sktime.netaddresses (#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
PlateauFindermodule (#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_paramsin extension templates (#4289) @fkiraly[DOC] extension template for parameter estimators (#4288) @fkiraly
[DOC] Update
CONTRIBUTORS.mdto most recent (#4358) @fkiraly[DOC] improved method docstrings for transformers (#4328) @fkiraly
[DOC] updated
dtw_distancedocstring example to include import (#4324) @JonathanBechtel[DOC]
TimeSeriesKMeans- correctinit_algorithmdefault 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
ForecastXforecasting 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_spacedfor unequal indexpd-multiindextyped data (#4308) @noahleegithub
Forecasting#
[BUG] fix
Settingwithcopywarningwhen using custom error metric inevaluate(#4294) @fkiraly, @marrov[BUG] fix forecasting metrics’
evaluate_by_indexfor hierarchical input (#4306) @fkiraly, @marrov[BUG] pass user passed parameters to
ForecastXto underlying estimators (#4391) @yarnabrina[BUG] fix unreported probabilistic prediction bugs detected through #4393 (#4399) @fkiraly
[BUG] ensure forecaster
cutoffhasfreqinferred if inferable, for single series (#4406) @fkiraly[BUG] fix
ValueErrorinVECM._predict_intervalif multiple coverage values were passed (#4411) @yarnabrina[BUG] temporarily skip
test_predict_quantilesforVARdue 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#
sktimenow supports python 3.11on python 3.11,
numbais not a dependency, and a number of other packages are also not available as soft dependencies, mostly due to compatibility with 3.11.sktimeand its test suite can now be used withoutnumbainstalled, with the exception of estimators depending onnumba.numbais still a core dependency on python 3.7-3.10.numbawill become a soft dependency, from a core dependency, in 0.18.0. Estimators dependent onnumbawill function exactly as before ifnumbais 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
nameattribute inpd.Seriespassed. Previously, namedpd.Serieswere not fully supported.
Deprecations and removals#
Dependencies#
numbawill change from core dependency to soft dependency insktime 0.18.0. To ensure functioning of setups ofsktimecode dependent onnumbabased estimators going forward, ensure to installnumbain the environment explicitly, or install theall_extrassoft dependency set which will continue to containnumba. Besides this,numbadependent estimators will function identically as before.
Enhancements#
Benchmarking#
Data types, checks, conversions#
Forecasting#
[ENH] fixes for forecasters to retain
nameattribute inpredict(#4161) @fkiraly[ENH] improved/fixed
scoringargument for forecasting tuners (#4178) @fkiraly[ENH] faster test for forecasters’
predict_residuals(#4156) @fkiraly[ENH] test that forecasters preserve
nameattr ofpd.Series(#4157) @fkiraly[ENH] improved/fixed
scoringargument 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
nameattribute inpredict(#4161) @fkiraly[BUG] ensure
pd.Seriesnameattribute is preserved in conversion to/frompd.DataFrameandnp.ndarray, asSeriesscitype (#4150) @fkiraly[BUG]
AutoETS,UnobservedComponents: fixpredict_intervalfor integer based index not starting at zero (#4180) @fkiraly
Parameter estimation#
Time series clustering#
Maintenance#
Documentation#
[DOC] Fix rendering of examples section in
Lagdocstring (#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
transformdocstrings - change md to rst (#4199) @romanlutz[DOC] remove gap between pandas and
DataFrame|Seriesin classification notebook (#4200) (#4200) @romanlutz[DOC] Fixed table in
CIoverview documentation (#4198) @pranavvp16
Contributors#
@aiwalter, @alex-hh, @danbartl, @dbcerigo, @fkiraly, @hoesler, @matthewmiddlehurst, @NeuralNut, @pranavvp16, @romanlutz
Version 0.16.0 - 2023-01-30#
Highlights#
HierarchyEnsembleForecasterfor 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_paramsof pipelines and other heterogeneous meta-estimators now supports parameter nesting (#4110) @fkiraly
Dependency changes#
statsmodelsis now a soft dependency. Estimators dependent onstatsmodelscan be used exactly as before ifstatsmodelsis present in the python environment.
Core interface changes#
BaseEstimator#
The method
get_fitted_params, of allBaseEstimatordescendants (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
cutoffattribute of forecasters has changed topd.Indexsubtype, from index element. To update previously functional code, replace references tocutoffbycutoff[0].
Deprecations and removals#
Dependencies#
statsmodelshas changed from core dependency to soft dependency insktime 0.16.0. To ensure functioning of setups ofsktimecode dependent onstatsmodelsbased estimators going forward, ensure to installstatsmodelsin the environment explicitly, or install theall_extrassoft dependency set which will continue to containstatsmodels.
Data types, checks, conversions#
check_is_scitype: themsg_legacy_interfaceargument has now been removed. Future behaviour is as per the default of the argument,msg_legacy_interface=False.
Forecasting#
all forecasters: the public
cutoffattribute of forecasters has changed topd.Indexsubtype, from index element. To update previously functional code, replace references tocutoffbycutoff[0].
Transformations#
Catch22: thetransform_single_featuremethod has been removed from theCatch22transformerFourierFeatures: in 0.17.0, the default value of thekeep_original_columnsparameter will change toFalse
Enhancements#
BaseEstimator#
Data types, checks, conversions#
Forecasting#
[ENH]
HierarchyEnsembleForecasterfor 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]
PoissonHMMestimator (#4126) @klam-data
Time series classification#
[ENH] Reduce repetitive code in
test_boss.pyand add check for string datatype in _boss.py (#4100) @erjieyong
Time series generators#
[ENH] added
piecewise_multinomial(#4079) @JonathanBechtel
Transformations#
[ENH] Add
keep_original_columnsoption toFourierFeaturestrafo (#4008) @KishManani[ENH] Add
BKFilterTransformer (#4127) @klam-data, @pyyim`
Maintenance#
[MNT] Automate updating CONTRIBUTORS.md (#3807) @achieveordie
[MNT] address
pd.Seriesconstructordtypedeprecation /FutureWarning- part 2 (#4111) @fkiraly[MNT] 0.16.0 change/deprecation action -
statsmodelsas soft dependency (#3516) @fkiraly[MNT] emergency fix for precommit CI failure - remove
isort(#4164) @fkiraly[MNT] isolate
statsmodelsinHierarchyEnsembleForecasterdocstring (#4166) @fkiraly[MNT] 0.16.0 deprecation action - change
BaseForecaster.cutofftopd.Index(#3678) @fkiraly[MNT] isolate
statsmodelsinHierarchyEnsembleForecasterdocstring - accidentally missing commit (#4168) @fkiraly[MNT] Bump
isortto5.12.0inpre-commitconfig (#4167) @snnbotchway
Documentation#
Fixes#
BaseObject#
Forecasting#
[BUG] fix
get_fitted_paramsfor forecaster tuners, missingbest_forecasteretc (#4102) @fkiraly[BUG] fix
get_fitted_paramsin case of vectoriztion for forecasters (#4105) @fkiraly[BUG] fix erroneous
intcoercion ofTrendForecasterandPolynomialTrendForecasteronDatetimeIndex(#4133) @fkiraly[BUG] Remove unnecessary
freqerror 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
sktimeunder macOS with ARM processors (#4010) @dainelli98
Core interface changes#
BaseObject#
the
python_dependenciestag 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
daskis installed:dask_series,dask_panel,dask_hierarchical. These can be used in estimators now. End-to-end integration withdaskis not yet available, but on the roadmap.
Distances, kernels#
pairwise transformers now possess a method
transform_diagwhich 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_pipelineand the*dunder to build linear pipelines with time series transformers
Deprecations and removals#
in
check_estimatorandrun_tests, thereturn_exceptionsargument 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]
daskmtypes - part 2,PanelandHierarchical(#4011) @fkiraly[ENH] speed up mtype check for
pandasbased mtypes withpd.PeriodIndex(#3991) @fkiraly[ENH] improve performance of
pandasbased panel and hierarchical mtype checks (#3935) @danbartl[ENH] Speed up hierarchical checks and unify with panel approach (#4061) @danbartl
Distances, kernels#
[ENH] generalize
AggrDistandFlatDistto allow arbitrary callables, includingsklearnkernel functions (#3956) @fkiraly[ENH]
transform_diagmethod 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
DirectTabularRegressionForecasterandDirectTimeSeriesRegressionForecaster(#3688) @danbartl[ENH] forecasting benchmark function
evaluateto accept list of scorers (#3883) @aiwalter[ENH] add contract test for hierarchical forecasting (#3969) @fkiraly
[ENH] extend
Prophetto allowpd.PeriodIndex(#3995) @fkiraly[ENH] improve handling of
scitypeinmake_reduction(#4022) @fkiraly[ENH]
hcrystalballforecaster 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
DateTimeFeaturestrafo to work with multi-index data and add option to drop columns. (#3996) @KishManani[ENH] enable
TimeSincetrafo to transform multiindex dataframes natively (#4006) @KishManani[ENH] make
TimeSincetrafo 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_dependenciesto 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_depsto also allows list or tuple ofBaseObject-s (#4002) @fkiraly[ENH] extend
sklearn_scitypeto infer the scitype correctly from composites (#4021) @fkiraly[ENH] Improve error messages in
test_estimator_tagstest (#4014) @fkiraly[ENH] in
check_estimatorandrun_testsreplacereturn_exceptionsarg 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
WEASELandBOSS, removetype_dictand update defaultalphabet_size=2(#4025) @xxl4tomxu98[MNT] move
badrmaranicontrib to chronological order (#4029) @fkiraly[MNT] skip #4033 related failures until fixed (#4034) @fkiraly
[MNT] skip
LSTMFCNClassifiertests due to unfixed failure onmain(#4037) @fkiraly[MNT] explicit lower version bound on
scipy(#4019) @fkiraly[MNT] fix
_check_soft_dependenciesbreaking for PEP 440 specifiers without class reference (#4044) @fkiraly[MNT] downwards compatibility fixes for minimal dependency set (#4041) @fkiraly
[MNT] address
pd.Seriesconstructordtypedeprecation /FutureWarning(#4031) @fkiraly[MNT] isolate
statsmodels, recent instances (#4035) @fkiraly[MNT] address
pandasastypedeprecation /FutureWarninginTrendForecaster(#4032) @fkiraly[MNT] explicit use of
min_periodsargs insideWindowSummarizerto 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
sktimewith macOS ARM (#4010) @dainelli98[DOC]
all_estimatorsreference on all estimator pages (#4027) @fkiraly, @MatthewMiddlehurst[DOC] remove
make_reductionscitype 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_.predictincorrect in-sample start index (#3942) @tianjiqx[BUG] fix
statsmodelsestimators when exogenousXis passed with more indices thanfh(#3972) @adoherty21[BUG] fix
ReconcilerForecasterwhen not used in a pipeline withAggregator(#3980) @ciaran-g[BUG] fix logic bug in
ForecastXpredictions (#3987) @aiwalter, @fkiraly[BUG] fix
Prophetnot working with non-integer forecast horizon (#3995) @fkiraly[BUG] fix dropped column index in
BaggingForecaster(#4001) @fkiraly[BUG] fix
TrendForecasterifregressoris not boolean coercible (#4047) @fkiraly[BUG] fix mutation of
regressorinPolynomialTrendForecaster._fit(#4057) @fkiraly[BUG] fix
ConformalIntervalsupdate whensample_fracargument is not None (#4083) @bethrice44
Governance#
Time series classification#
[BUG] constructor of any DL estimator to pass non-default values to underlying
Networkobject (#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
Networkobject (#4075) @achieveordie
Transformations#
[BUG] fix
TimeSincecheck of inconsistency betweentime_indexandstart(#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#
MLflowcustom flavor forsktimeforecasting (#3912, #3915) @benjaminbluhmcompatibility with most recent versions of core dependencies
sktime 1.2.0``and ``numpy 1.24(#3922) @fkiralyTimeBinnertransformation for temporal bin aggregation (#3745) @kcc-lionE-Agglo estimator for hierarchical agglomerative cluster estimation (#3430) @KatieBuc
week-end dummy
is_weekendinDateTimeFeaturestransformation (#3844) @KishMananideep learning classifiers migrated from
sktime-dltosktime: ResNet, LSTM-FCN (#3714, #3881) @nilesh05apr, @solen0id
Dependency changes#
sktimeis now compatible withnumpy 1.24, bound is relaxed to<1.25sktimeis now compatible withsklearn 1.2.0, bound is relaxed to<1.3.0pycatch22is no longer a soft dependency ofsktime, due to installation issues.pycatch22based transformers are still functional if the dependency is installed in the python environment.statsmodelswill 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#
statsmodelswill change from core dependency to soft dependency insktime 0.16.0. To ensure functioning of setups ofsktimecode dependent onstatsmodelsbased estimators after the deprecation period, ensure to installstatsmodelsin the environment explicitly, or install theall_extrassoft 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#
ExpandingWindowSplitterhadstart_with_windowargument removed. From now on,initial_window=0should be used instead ofstart_with_window=False.the row transformers,
SeriesToSeriesRowTransformerandSeriesToPrimitivesRowTransformerhave been removed. Row/instance vectorization functionality is natively supported bysktimesince 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),FunctionTransformermay have to be used instead ofSeriesToPrimitivesRowTransformer.change to public
cutoffattribute delayed to 0.16.0: publiccutoffattribute of forecasters will change topd.Indexsubtype, from index element.
Time series classification#
Delayed: the base class of
ProbabilityThresholdEarlyClassifierwill be changed toBaseEarlyClassifierin 0.16.0. This will change how classification safety decisions are made and returned, seeBaseEarlyClassifierorTEASERfor the new interface.
Transformations#
transformations.series.composehas been removed in favour oftransformations.compose. All estimators in the former have been moved to the latter.The default of
default_fc_parametersinTSFreshFeatureExtractorandTSFreshRelevantFeatureExtractorhas beenchanged from"efficient"to"comprehensive".
Testing framework#
The general interface contract test
test_methods_do_not_change_statehas been renamed totest_non_state_changing_method_contract
Enhancements#
MLOps & Deployment#
[ENH] MLflow custom flavor for
sktimeforecasting (#3912) @benjaminbluhm
BaseObject#
Forecasting#
Time series annotation#
Time series classification#
[ENH] Migrate LSTM-FCN classifier from
sktime-dltosktime(#3714) @solen0id[ENH] Migrate
ResNetClassifierfromsktime-dltosktime(#3881) @nilesh05apr
Time series regression#
[ENH]
DummyRegressorfor time series regression (#3968) @badrmarani
Transformations#
[ENH]
TimeBinnertransformation for temporal bin aggregation (#3745) @kcc-lion[ENH] Add
is_weekendoption toDateTimeFeaturestrafo (#3844) @KishManani[ENH] Add multiplicative option to
Detrender(#3931) @KishManani
Visualisations#
[ENH] Add support for plotting intervals in
plot_series(#3825) @chillerobscuro[ENH] Add
colorsargument 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.0compatibility - remove private_check_weightsimport inKNeighborsTimeSeriesClassifierand -Regressor(#3918) @fkiraly[MNT]
sklearn 1.2.0compatibility - coverBaseForestparameter change (#3919) @fkiraly[MNT]
sklearn 1.2.0compatibility - decouplesklearn.base._pprint(#3923) @fkiraly[MNT]
sklearn 1.2.0compatibility - removenormalize=Falseargs fromRidgeClassifierCV(#3924) @fkiraly[MNT]
sklearn 1.2.0compatibility -ComposableTimeSeriesForestreserved attribute fix (#3926) @fkiraly[MNT] remove
pycatch22as a soft dependency (#3917) @fkiraly[MNT] Update
sklearncompatibility to1.2.x, version bound to<1.3(#3922) @fkiraly[MNT] bump
numpyversion bound to<1.25and fix compatibility issues (#3915) @aquemy, @fkiraly[MNT] skip sporadic
ResNetClassifierfailures (#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:
TimeSincefor feature engineering, time since fixed date/index (#3810) @KishMananipermutation wrapper
Permutefor 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 aForecastingPipelinethat 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]
Catch22Transformerupdate andCatch22Wrapperforpycatch22(#3431) @MatthewMiddlehurst[ENH]
MinirocketMultivariateVariabletransformer, 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_paramsvalues to deep learning classifiers and regressors (#3761) @TonyBagnall
Time series regression#
[ENH] Add some
get_test_paramsvalues 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
Permutefor tuning of pipeline sequence (#3689) @aiwalter @fkiraly[ENH]
fit_transformforTSFreshRelevantFeatureExtractor(#3785) @MatthewMiddlehurst[ENH]
TimeSincetransformer 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
ColumnEnsembleForecasterfor hierarchicalX(#3768) @RikStarmans @fkiraly[BUG] decouple forecasting pipeline module from registry (#3799) @fkiraly
Time series classification#
[BUG]
kerasimport quick-fix (#3744) @ltsaprounis[BUG] in
TemporalDictionaryEnsemble, setParallelprefer="threads", fixes #3788 (#3808) @TonyBagnall[BUG] in
DummyClassifier, fix incorrectly setcapability:multivariatetag (#3858) @fkiraly
Transformations#
[BUG] fix behaviour of FourierFeatures with pd.DatetimeIndex (#3606) @eenticott-shell
[BUG] fix infinite loop in
get_paramsforFeatureUnion(#3708) @hoesler @fkiraly[BUG]
SupervisedIntervalsbugfixes and clean up (#3727) @MatthewMiddlehurst[BUG] Reduce size of
MultiRockettest example to avoid sporadicMemoryErrorin testing (#3813) @TonyBagnall[BUG] fix return index for transformers’
Primitivesoutput 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_fullto 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
RocketClassifierdocstring (#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
ScaledLogitTransformerdocstring (#3845) @fkiraly[DOC] Update CONTRIBUTORS.md (#3781) @achieveordie
[DOC] Docstring improvements to
TSFreshRelevantFeatureExtractor(#3785) @MatthewMiddlehurst
Maintenance#
[MNT] Converted
setup.pytopyproject.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.tomlbroken string (#3797) @TonyBagnall[MNT] exclude
TapNetfrom tests (#3812) @TonyBagnall[MNT] test soft dependency isolation in non-suite tests (#3750) @fkiraly
[MNT] Address
ContinuousIntervalTreeandRandomShapeletTransformdeprecation warnings (#3796) @MatthewMiddlehurst[MNT] isolate
statsmodels, part 4: isolatingstatsmodelsin 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
sktimeobjects viasavemethod &base.load(#3336, #3425) @achieveordie @fkiralydocumented format specification for
.tsfiles (#3380) @achieveordienew forecaster: modular/configurable Theta forecaster (#1300) @GuzalBulatova
new probabilistic prediction adder for forecasters: squaring residuals (#3378) @kcc-lion
forecasting
evaluatenow supports hierarchical and panel data and parallelism viadaskandjoblib(#3511, #3542) @topher-lo @fkiralyget_fitted_paramsnow supported for all estimators via defaults (#3645) @fkiraly
Core interface changes#
BaseObject & BaseEstimator#
all objects and estimators (
BaseObjectdescendants) now possess asavemethod for serialization to memory or file. Serialized objects can be deserialized bybase.load. Interface contracts onsaveandloadare now tested by the standard test suite (e.g.,check_estimator).all fittable objects (“estimators”,
BaseEstimatordescendants) now have a functioning default implementation ofget_fitted_params. Interface contracts onget_fitted_paramsare now tested by the standard test suite (e.g.,check_estimator).the extender contract for
get_fitted_paramshas changed. For new implementations ofsktimeestimators, developers should implement_get_fitted_paramsrather thanget_fitted_paramsdirectly, similar tofitand_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#
ExpandingWindowSplitterparameterstart_with_windowis deprecated and will be removed in 0.15.0. For continued functionality ofstart_with_window=True, usestart_with_window=0instead. Other values ofstart_with_windowwill behave as in the casestart_with_window=False.Isolated
pd.timedeltaelements should no longer be passed to splitters andForecastingHorizon, aspandashas deprecatedfreqforpd.delta. Exceptions will be raised in corner cases wherefreqas not been passed and cannot be inferred.change to public
cutoffattribute delayed to 0.15.0: publiccutoffattribute of forecasters will change topd.Indexsubtype, from index element.
Time series classification#
The base class of
ProbabilityThresholdEarlyClassifierwill be changed toBaseEarlyClassifierin 0.15.0. This will change how classification safety decisions are made and returned, seeBaseEarlyClassifierorTEASERfor the new interface.
Transformations#
The default of
default_fc_parametersinTSFreshFeatureExtractorandTSFreshRelevantFeatureExtractorwill change from"efficient"to"comprehensive"in 0.15.0.
Testing framework#
The name of the test
test_methods_do_not_change_statewill change totest_non_state_changing_method_contractin 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_argsdefault handling for keys not present (#3595) @fkiraly[ENH] improve base class test docstrings and clone test (#3555) @fkiraly
[ENH]
get_fitted_paramsfor nestedsklearncomponents (#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
@targetlabelidentifier for.tsfiles 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_reductionto allow global pooling on panel data (#3451) @danbartl[EHN] Parallelized
evaluatewith{joblib, dask}(#3511) @topher-lo[ENH] use
statsmodelsappendin_StatsModelsAdapter._update(#3527) @chillerobscuro[ENH] extend
evaluateto hierarchical and panel data (#3542) @fkiraly[ENH]
numpyinteger support forColumnEnsembleForecaster(#3557) @fkiraly[ENH] multivariate test case for
EnsembleForecaster(#3637) @fkiraly[ENH] extend
ColumnEnsembleForecasterto 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
EnsembleForecasterwork with multivariate data (#3623) @AnH0ang[ENH]
ExpandingWindowSplitterfix forinitial_window=0and 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
TapNetestimators and docstring/interface cleanup (#3544) @achieveordie[ENH] more relevant parameters to
CNNRegressorfor user flexibility (#3561) @achieveordie[ENH] allow
KNeighborsTimeSeriesClassifierto handle distances between unequal length series (#3654) @fkiraly
Time series regression#
[ENH] TapNet DL Model for regression from
sktime-dl(#3481) @achieveordie[ENH] allow
KNeighborsTimeSeriesRegressorto handle distances between unequal length series(#3654) @fkiraly
Transformations#
[ENH] test that
TruncationTransformerpreserves index and column names inpd-multiindex(#3535) @fkiraly[ENH] replace inplace sort by non-inplace sort in
Reconciler(#3553) @fkiraly[ENH]
SupervisedIntervalstransformer and cleanednumbafunctions (#3622) @MatthewMiddlehurst[ENH]
TSFreshFeatureExtractorcleanup, tests, and docstring (#3636) @kcc-lion[ENH] Option to fit
Clearskytransformer 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
Documentation#
[DOC] update docs on releasing conda packages (#3279) @lmmentel
[DOC] Add Format Specification for
.tsfiles. (#3380) @achieveordie[DOC]
sklearnusage examples in classifier notebook (#3523) @MatthewMiddlehurst[DOC] update extension templates and docstrings for
_get_fitted_params(#3589) @fkiraly[DOC] Replace
sphinx-panelswithsphinx-design(#3575) @MatthewMiddlehurst[DOC] fixes outdated points of contact in code of conduct (#3593) @fkiraly
[DOC] fixes incorrect coc issue reporting link in issue tracker and remaining references in coc (#3594) @fkiraly
[DOC] Add API documentation for the annotation subpackage (#3603) @lmmentel
[DOC] invite to fall dev days on website landing page (#3607) @miraep8
[DOC] add recommendations for
get_test_paramsin extension templates (#3635) @achieveordie
Maintenance#
[MNT] Bump setup-python action from 2 to 4 (#3577) @lmmentel
[MNT] Remove
ABCMetainheritance from_HeterogeneousMetaEstimator(#3569) @fkiraly[MNT] Replace deprecated
sphinx-panelswithsphinx-design(#3575) @MatthewMiddlehurst[MNT] temporarily remove stochastically failing tapnet from tests (#3624) @fkiraly
[MNT] replace
ARIMAused in tests by reducer to remove soft dependency in tests (#3552) @fkiraly[MNT] replace author names by GitHub ID in author fields, linting (#3628) @fkiraly
[MNT] isolate
statsmodels, part 3: replace dependent estimators in test parameters (#3632) @fkiraly[MNT] replace author names by GitHub ID in author fields, linting (#3628) @fkiraly
Refactored#
Fixes#
BaseObject#
Data loaders#
[BUG] fix bug with data loading from timeseriesclassification.com when
extract_pathis notNone(#3021) @TonyBagnall[BUG] fix error in writing datasets to file in ts format (#3532) @TonyBagnall
Data types, checks, conversions#
[BUG] fix
pd.concatin stratified resampling causing error incheck_is_scitype(#3546) @TonyBagnall[BUG] fix
check_estimatorexclude arguments not working for non-base scitype tests (#3566) @fkiraly[BUG] fix erroneous asserts in input checkers (#3556) @fkiraly
[BUG] Exclude
np.timedelta64fromis_intcheck (#3627) @khrapovs
Forecasting#
[BUG] fix
ConformalIntervalsupdate does not updateresiduals_matrix(#3460) @bethrice44[BUG] Fix side effect of
predict_residuals(#3475) @aiwalter[BUG] Fix residuals formula in
NaiveForecaster.predict_varfor non-nullwindow_length(#3495) @topher-lo[BUG] fix
ColumnEnsembleForecasterforstrindex (#3504) @canbooo @fkiraly[BUG] fix conditional
requires-fh-in-fittag inEnsembleForecaster(#3642) @fkiraly
Parameter estimation#
Time series annotation#
[BUG] Fixing tags typo in
BaseHmmLearn(#3563) @guzalbulatova @miraep8
Time series clustering#
[BUG] Pass all average params to kmeans (#3486) @chrisholder
Time series classification#
[BUG] fix
KNeighborsTimeSeriesClassifiertag handling dependent on distance component (#3654) @fkiraly[BUG] Add missing
get_test_paramstoTapNetestimators (#3541) @achieveordie[BUG]
numba/np.medianinteraction raises error for large data sets run withn_jobs>1(#3602) @TonyBagnall[BUG] bug in the interaction between
numbaandnp.zerosidentified in #2397 (#3618) @TonyBagnall[BUG] various small bugfixes (#3706) @MatthewMiddlehurst
Time series distances and kernels#
[BUG] Fixed msm alignment path (#3484) @chrisholder
[BUG] TWE alignment path fix and refactor (#3485) @chrisholder
[BUG] Fix typo in
set_tagscall inAggrDist.__init__(#3562) @aiwalter
Time series regression#
Transformations#
[BUG]
RandomShapeletTransform: floor the maximum number of shapelets to number of classes (#3564) @TonyBagnall[BUG]
ClearSkytransformer: fix missing value problem after transform (#3579) @ciaran-g
Contributors#
@achieveordie, @aiwalter, @AnH0ang, @arampuria19, @bethrice44, @canbooo, @chillerobscuro, @chrisholder, @ciaran-g, @danbartl, @fkiraly, @GuzalBulatova, @kcc-lion, @khrapovs, @lmmentel, @MatthewMiddlehurst, @miraep8, @shagn, @TonyBagnall, @topher-lo
Version 0.13.4 - 2022-09-27#
Maintenance release - moved sktime repository to sktime org from alan-turing-institute org (#2926)
Forks and links should be redirected, governance remains unchanged.
In case of any problems, please contact us via the issue tracker or discussion forum.
Version 0.13.3 - 2022-09-25#
Highlights#
new DL based time series classifiers:
FCNClassifier,MLPClassifier(#3232, #3233) @AurumnPegasusnew transformers: Fourier features, DOBIN basis features (#3373, #3374) @KatieBuc, @ltsaprounis
new annotation estimators: GGS, HIDAlgo, STRAY (#2744, #3158, #3338) @lmmentel, @KatieBuc
fully documented tags in forecaster and transformer extension templates (#3334, #3440) @fkiraly
Dependency changes#
sktimeis now compatible withpmdarima 2.0.0, bound is relaxed to<3.0.0sktimeis now compatible withpandas 1.5.0, bound is relaxed to<1.6.0
Deprecations and removals#
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).
list format will be deprecated from 0.14.0, and replaced by dict in 0.15.0.
The format will be determined by temporary additional arg msg_legacy_interface, which will be
introduced in 0.14.0, default changed to False in 0.15.0, and removed in 0.16.0.
Enhancements#
Data types, checks, conversions#
[ENH] support for
xarrayDataArray& mtypes (#3255) @benHeid[ENH] avoid metadata computation in
scitypeutility (#3357) @fkiraly[ENH]
check_is_scitypeerror message return changed todict(#3466) @fkiraly[ENH] Optimize
from_3d_numpy_to_nestedconverter function (#3339) @paulbauriegel[ENH] simplify
convert_to_scitypelogic, fix export and docstring omissions in scitype converter module (#3358) @fkiraly
Data loaders#
Forecasting#
[ENH]
pmdarima 2.0.0compatibility fix - use absolute index in return (#3302) @fkiraly[ENH] global/local setting for
DirectReductionForecaster(#3327) @fkiraly[ENH] consistent
sphandling in parameter estimators andAutoARIMA(#3367) @fkiraly[ENH] enable default
get_fitted_paramsfor forecasters and delegated estimators (#3381) @fkiraly[ENH] prevent vectorization in forecaster multiplexer (#3391) @fkiraly
[ENH] prevent vectorization in update wrappers and
ForecastX(#3393) @fkiraly[ENH] added missing data input check in forecasters (#3405) @fkiraly
[ENH] Add parallel
fitandpredict_residualsfor calculation ofresiduals_matrixinConformalIntervals(#3414) @bethrice44[ENH] predictive variance and quantiles for naive forecaster (#3435) @topher-lo
Time series annotation#
Time series classification#
[ENH] Dictionary classifiers speedup (#3216, #3360) @patrickzib
[ENH] new classifier:
MLPClassifier(#3232) @AurumnPegasus[ENH] new classifier:
FCNClassifier(#3233) @AurumnPegasus
Time series distances and kernels#
Transformations#
[ENH]
BaseTransformerdata memory - enabled by tag (#3307) @fkiraly[ENH] Fourier features transformer (#3374) @ltsaprounis
[ENH] prevent vectorization in tramsformer multiplexer (#3391) @fkiraly
[ENH] added
scale,offsetparameters toLogTransformer(#3354) @bugslayer-332[ENH]
pandas 1.5.0compatibility fix: useinfer_freqinLagif nofreqpassed or specified (#3456) @fkiraly[ENH] refactor inheritance of
PAA,SAX,SFA(#3308) @fkiraly
Testing framework#
Fixes#
Data types, checks, conversions#
Forecasting#
[BUG] Fix default conformal intervals
initial_windowparameter (#3383) @bethrice44
Time series annotation#
Time series classification#
Transformations#
[BUG] fixes incorrect warning condition in
InvertTransform(#3352) @fkiraly[BUG] ensure
Differenceralways inverts properly (#3346) @fkiraly, @ilkersigirci
Maintenance#
[MNT] skip
ClearSkydoctest to avoidload_solarcrash (#3376) @fkiraly[MNT] isolate soft dependency in
MLPClassifierdoctest (#3409) @fkiraly[MNT] replaces deprecated
pandasis_monotonicbyis_monotonic_increasing(#3455) @fkiraly[MNT] update
test_interpolateto bepandas 1.5.0compatible (#3467) @fkiraly
Documentation#
[DOC] updated extension templates - tags explained, soft dependencies (#3334) @fkiraly
[DOC] API reference for
dists_kernelsmodule (#3312) @fkiraly[DOC] Some tips on getting virtual environments to work (#3331) @miraep8
[DOC] changed wrong docstring default value of
start_with_windowinSlidingWindowSplitterto actual default value (#3340) @bugslayer-332[DOC] Correct minor typos in
examples/AA_datatypes_and_datasets.ipynb(#3349) @achieveordie[DOC] updated extension templates - transformer tags explained (#3377) @fkiraly
[DOC] correcting and clarifying
BaseSplitterdocstrings (#3440) @fkiraly[DOC] Fix docstring of TransformerPipeline (#3401) @aiwalter
[DOC] Expired slack link under “Where to ask questions” (#3449) @topher-lo
[DOC] Instructions for how to skip tests for new soft dependencies. (#3416) @miraep8
[DOC] replace legacy estimator overview with links (#3407) @fkiraly
[DOC] Expired slack link under “Where to ask questions” (#3449) @topher-lo
[DOC] Added example to
plot_series& fixed example forplot_lags(#3400) @shagn
Contributors#
@achieveordie, @aiwalter, @AurumnPegasus, @benHeid, @bethrice44, @bugslayer-332, @fkiraly, @ilkersigirci, @KatieBuc, @khrapovs, @lmmentel, @ltsaprounis, @miraep8, @patrickzib, @paulbauriegel, @shagn, @stepinski, @topher-lo
Version 0.13.2 - 2022-08-23#
Highlights#
new forecaster:
statsmodelsARDLinterface (#3209) @kcc-lionnew transformer: channel/variable selection (Dhariyal et al 2021) for multivariate time series classification (#3248) @haskarb
new dunders:
trafo ** forecaster= apply to exogeneous data;-trafo=OptionalPassthrough;~trafo= invert (#3243, #3273, #3274) @fkiralypairwise transformations (time series distances, kernels) are now fully integrated with the
check_estimatorutility (#3254) @fkiraly
Dependency changes#
pmdarimais bounded<2.0.0until compatibility issues are resolved
Core interface changes#
Forecasting#
dunder method for pipelining transformers to exogeneous data:
my_trafo ** my_forecasterwill create aForecastingPipelineNote:**has precedence over*(apply to endogeneous data)the default value for the
ignores-exogeneous-Xtag is set to the safer valueFalse. This does not affectsktimeforecasters, but may affectsktimecompatible forecasters in which an explicit setting of the tag has been omitted, in thatXis now passed to all internal functions_fit,predict, etc. This is breaking only under the condition that (a) the tag has been erroneously omitted, (b) the internal functions are broken, i.e., will cause an exception only if the error (a) was masking a bug (b).
Time series distances and kernels#
dunder method for pipelining ordinary transformers with pairwise transformers:
my_trafo ** distancewill create aPwTrafoPanelPipeline, same as “applymy_trafo.fit_transformto both inputs first, then applydistance”
Transformations#
dunder method for applying
OptionalPassthrough:-my_trafois the same asOptionalPassthrough(my_trafo)dunder method for inverting transformer:
~my_trafohastransformandinverse_transformswitched
Deprecations and removals#
Transformations#
deprecated:
transformations.series.composeis deprecated in favour oftransformations.compose. All estimators in the former are moved to the latter, and will no longer be accessible intransformations.series.composefrom 0.15.0.deprecated: the row transformers,
SeriesToSeriesRowTransformerandSeriesToPrimitivesRowTransformerhave been deprecated. Row/instance vectorization functionality is natively supported bysktimesince 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),FunctionTransformermay have to be used instead ofSeriesToPrimitivesRowTransformer.
Enhancements#
BaseObject#
Data types, checks, conversions#
Forecasting#
[ENH]
**dunder for applying transformers to exogeneous data in forecasters (#3243) @fkiraly[ENH] test
pd.Serieswith name attribute in forecasters (#3297, #3323) @fkiraly[ENH] set default
ignores-exogeneous-XtoFalse(#3260) @fkiraly[ENH] forecasting pipeline test case with
Detrender(#3270) @fkiraly[ENH] test hierarchical forecasters with hierarchical data (#3321) @fkiraly
Time series annotation#
Time series distances and kernels#
[ENH] MSM distance clean-up (#2964) @chrisholder
[ENH] panel distance from flattened tabular distance (#3249) @fkiraly
[ENH] test class integration for pairwise transformers (#3254) @fkiraly
[ENH] expose edit distances as sklearn compatible objects (#3251) @fkiraly
[ENH] pipeline composition for pairwise panel transformers (#3263) @fkiraly
[ENH] arithmetic combinations of distances/kernel transformers (#3264) @fkiraly
Transformations#
[ENH] channel selection (Dhariyal et al 2021) for multivariate time series classification (#3248) @haskarb
[ENH] channel selection (Dhariyal et al 2021) - compatibility with arbitrary distance (#3256) @fkiraly
[ENH] in
Lag, make column naming consistent between single-lag and multi-lag case (#3261) @KishManani[ENH] deprecate
transformations.series.composein favour oftransformations.compose(#3271) @fkiraly[ENH] inversion of transformer wrapper and dunder (#3274) @fkiraly
[ENH] correctness test for
OptionalPassthrough(#3276) @aiwalter[ENH]
OptionalPassthroughwrapping vianegdunder (#3273) @fkiraly[ENH] refactor of
OptionalPassthroughas a delegator (#3272) @fkiraly
Testing framework#
Governance#
Fixes#
Data sets and data loaders#
[BUG] Fix
write_ndarray_to_tsfileforclassLabel = False(#3303) @paulbauriegel
Data types, checks, conversions#
[BUG] fix failure of some conversions in
_load_provided_dataset()(#3231) @achieveordie[BUG] fix recurring instances of forgotten list comprehension brackets inside
np.all(#3245) @achieveordie, @fkiraly[BUG] fix
_enforce_infer_freqprivate utility for short time series (#3287) @fkiraly
Forecasting#
[BUG] Delay trimming in
ForecastingGridSearchCV untilafter transforming (#3132) @miraep8[BUG] Fix tag in
DirectReductionForecaster(#3257) @KishManani[BUG] ensure that forecasters do not add
pd.Series.nameattribute (#3290) @fkiraly[BUG] removes superfluous
UserWarninginAutoETS.fitifauto=Trueandadditive_only=True#3311 (#3317) @chillerobscuro[BUG] fix
ColumnEnsembleForecasterfor hierarchical input (#3324) @fkiraly[BUG] fix bug where default forecaster
_updateempties converter store (#3325) @fkiraly[BUG] (temporary fix) remove hierarchical datatypes from recursive reduction forecasters (#3326) @fkiraly
Parameter estimation#
Time series annotation#
[BUG] ClaSP Segmentation fixes (#3217) @patrickzib
Time series classification#
Transformations#
Maintenance#
Contributors#
@achieveordie, @aiwalter, @chillerobscuro, @chrisholder, @fkiraly, @haskarb, @KatieBuc, @kcc-lion, @KishManani, @miraep8, @patrickzib, @paulbauriegel
Version 0.13.1 - 2022-08-11#
Highlights#
forecasting reducers constructed via
make_reductionnow fully support global/hierarchical forecasting (#2486) @danbartlforecasting metric classes now fully support hierarchical data and hierarchy averaging via
multilevelargument (#2601) @fkiralyprobabilistic forecasting functionality for
DynamicFactor,VARandVECM(#2925, #3105) @AurumnPegasus, @lbventuraupdatefeatures forAutoARIMA,BATS,TBATS, and forecasting tuners (#3055, #3068, #3086) @fkiraly, @jelc53new transformer:
ClearSkytransformer for solar irradiance time series (#3130) @ciaran-gnew transformer:
Filtertransformer for low/high-pass and band filtering, interfacesmnefilter_data(#3067) @fkiraly, @sveameyer13
Dependency changes#
new soft dependency
mne, fromFiltertransformernew developer dependency
pytest-randomly
Core interface changes#
All Estimators#
get_fitted_paramsnow has a private implementer interface_get_fitted_params, similar tofit/_fitetcthe undocumented
_required_parametersparameter is no longer required (to be present in certain estimators)
Forecasting#
forecasting metric classes now fully support hierarchical data and hierarchy averaging via
multilevelargument
Parameter estimation#
new estimator type - parameter estimators, base class
BaseParamFitter
Deprecations and removals#
Time series classification#
ProbabilityThresholdEarlyClassifierhas been deprecated and will be replaced by an early classifier of the same name in version 0.15.0.Interfaces will not be downwards compatible.
Enhancements#
BaseObject#
Data sets and data loaders#
[ENH] ensure unique instance index in
sktimedatasets (#3029) @fkiraly[ENH] Rework of data loaders (#3109) @achieveordie
Data types, checks, conversions#
[ENH] add check for unique column indices to mtype checks (#2971) @fkiraly
[ENH] Adapter from
pd-multiindextogluontsListDataset(#2976) @TNTran92[ENH] add check for non-duplicate indices in
nested_univmtype (#3029) @fkiraly[BUG] Remove redundant computations in
datatypes._utilities.get_cutoff(#3070) @shchur
Forecasting#
[ENH] Reworked
make_reductionfor global forecasting (#2486) @danbartl[ENH] flexible
updatebehaviour of forecasting tuners (#3055) @fkiraly[ENH] flexible
updatebehaviour ofAutoARIMA(#3068) @fkiraly[ENH] Reducer prototype rework - experimental (#2833) @fkiraly
[ENH] better
ForecastingHorizonconstruction error message (#3236) @fkiraly[ENH] metrics rework part IV - hierarchical metrics (#2601) @fkiraly
[ENH] Reducer prototype rework - experimental (#2833) @fkiraly
[ENH]
predict_intervalcapability forVECM(#2925) @AurumnPegasus[ENH] “dont refit or update” option in
evaluate(#2954) @fkiraly[ENH] regular update for stream forecasting, and “no update” wrappers (#2955) @fkiraly
[ENH] Implement
get_fitted_paramsfor tuning forecasters (#2975) @ZiyaoWei[MNT] remove custom
__repr__fromBaseSplitter(#3048) @fkiraly[ENH]
DynamicFactorpredict_intervalandpredict_quantiles(#3105) @lbventura[ENH] Added
error_scoretoevaluateand forecasting tuners (#3135) @aiwalter[ENH] Refactor
CutoffSplitterusingget_windowfunction (#3145) @khrapovs[ENH] Refactor
SingleWindowSplitterusingget_windowfunction (#3146) @khrapovs[ENH] Allow lists to be
cutoffargument inCutoffSplitter(#3147) @khrapovs[ENH] Adding
VAR._predict_intervals(#3149) @lbventura
Parameter estimation#
Time series annotation#
Time series classification#
[ENH] refactored
KNeighborsTimeSeriesClassifier(#1998) @fkiraly[ENH] move vector classifiers from
_contribto classification module (#2951) @MatthewMiddlehurst[ENH] Various improvements to CNN Classifier base class (#2991) @AurumnPegasus
[ENH] weighted ensemble compositor for classifiers to allow users to build their own HIVE-COTE like ensembles (#3036) @fkiraly
[ENH] classifier
fit_predictmethods and default_predict(#3038) @fkiraly[ENH] remove unused methods from
ClassifierPipeline(#3042) @fkiraly[ENH] refactor
RocketClassifierto pipeline delegate (#3102) @fkiraly[ENH] refactor
Catch22Classifierto pipeline delegate (#3112) @fkiraly[ENH] deprecate
ProbabilityThresholdEarlyClassifier(#3133) @MatthewMiddlehurst
Time series regression#
Transformations#
[ENH] refactored
ColumnConcatenator, rewrite usingpd-multiindexinner mtype (#2379) @fkiraly[ENH]
__getitem__aka[ ]dunder for transformers, column subsetting (#2907) @fkiraly[ENH]
YtoXtransformer to use transform endogeneous data as exogegneous (#2922) @fkiraly[BUG] fixes
RandomIntervalFeatureExtractorto have unique column names (#3001) @fkiraly[BUG] fix for
Differencer.inverse_transformnot having access to data indexfreq(#3007) @fkiraly[ENH] Refactor transformers in
_deseasonalizemodule (#3040) @fkiraly[ENH] increase stateless scope of
FunctionTransformerandTabularToSeriesAdaptor(#3087) @fkiraly[ENH]
ClearSkytransformer for solar irradiance time series (#3130) @ciaran-g[ENH] move simple
ShapeletTransformfrom_contribtotransformationsmodule (#3136) @fkiraly
Testing framework#
[ENH] test that transformer output columns are unique (#2969) @fkiraly
[ENH] test estimator
fitwithout soft dependencies (#3039) @fkiraly[ENH] test all
BaseObjectdescendants for sklearn compatibility (#3122) @fkiraly[ENH]
functoolswrapper to preserve docstrings in estimators wrapped bymake_mock_estimator(#3228) @ltsaprounis[ENH] refactoring test params for
FittedParamExtractortoget_test_params(#2995) @mariamjabara[ENH] refactored test params for
ColumnTransformer(#3008) @kcc-lion[ENH] complete refactor of all remaining test params left in
_configtoget_test_params(#3123) @fkiraly[ENH] partition design for test matrix to reduce test time to a third (#3137) @fkiraly
Documentation#
[DOC] expanding content in testing section of “adding estimator” developer docs (#2544) @aiwalter
[DOC] add multivariate CNN example from
sktime-dl(#3002) @tobiasweede[DOC] parameter checking and move of
super.__init__in extension templates (#3010) @fkiraly[DOC] proba forecasting notebook from pydata Berlin 2022 (#3016) @ciaran-g, @eenticott-shell, @fkiraly
[DOC] added docstring example for
make_reduction(#3054) @aiwalter[DOC] fix typo in
segmentation_with_clasp.ipynb(#3060) @soma2000-lang[DOC] code quality docs expanded with instructions for local code quality checking set-up (#3089) @fkiraly
[DOC] added Python 3.10 reference to installation docs (#3098) @aiwalter
[DOC] improvements on local linting/precommit setup developer documentation (#3111) @C-mmon
[DOC] clarifications in the
Deseasonalizerdocstring (#3157) @fkiraly[DOC] added docstring examples and cleaning (#3174) @aiwalter
[DOC] added more detail to step 4 of high-level steps to implementing an es… (#3200) @kcc-lion
[DOC] added notebook cell output for notebooks shown in website (#3215) @aiwalter
[DOC] hierarchical forecasting notebook from pydata London 2022 (#3227) @danbartl, @fkiraly
[DOC] cleaned up user docs and tutorials page (#3240) @fkiraly
Fixes#
Data types, checks, conversions#
Forecasting#
[BUG] fix forecaster default
predict_quantilesfor multivariate data (#3106) @fkiraly[BUG]
ExpandingWindowSplitterconstructorsklearnconformance fix (#3121) @fkiraly[BUG] fix override/defaulting of “prediction intervals” adders (#3129) @bethrice44
[BUG] fix
check_equal_time_indexwith numpy arrays as input (#3160, #3167) @benHeid[BUG] fix broken
AutoEnsembleForecasterinverse variance method (#3208) @AnH0ang[BUG] fixing bugs in metrics base classes and custom performance metric (#3225) @fkiraly
Time series classification#
[BUG] fix HIVE-COTE2 sporadic test failure (#3094) @MatthewMiddlehurst
[BUG] fixes to
BaseClassifier._predict_probadefault andSklearnClassifierPipelinein casepredict_probais not implemented (#3104) @fkiraly[BUG] allowing single class case in sklearn classifiers (trees/forests) (#3204) @fkiraly
[BUG] skip check for no. estimators in contracted classifiers (#3207) @fkiraly
Transformations#
Testing framework#
Maintenance#
[MNT] fix broken Slack invite links (#3017, #3066) @aiwalter, @Arvind644
[MNT] removed
hcrystalballfromall_extrasdependency set (#3091) @aiwalter[MNT] add
testdirto.gitignore(#3019) @Lovkush-A[MNT] xfail known sporadic test failure #2368 (#3030`) @fkiraly
[MNT] Update codecov github action from v2 to v3 (#3050) @miraep8
[MNT] bump MacOS GitHub actions host to MacOS-11 (#3107) @lmmentel
[MNT] temporarily exclude
RandomShapeletTransformfrom tests (#3139) @fkiraly[MNT] temporary fix for Mac CI failures: skip recurringly failing estimators (#3134) @fkiraly
[MNT] reduce expected test time by making tests conditional on
no-softdeps(#3092) @fkiraly[MNT] temporarily exclude
RandomShapeletTransformfrom tests (#3139) @fkiraly[MNT] restrict changelog generator to changes to main branch (#3168) @lmmentel
[MNT] updated social links and badges, added LinkedIn badge (#3195) @aiwalter
[MNT] reactivate tests for
TSFreshRelevantFeatureExtractor(#3196) @fkiraly
Contributors#
@achieveordie, @aiwalter, @AnH0ang, @Arvind644, @AurumnPegasus, @benHeid, @bethrice44, @C-mmon, @ciaran-g, @danbartl, @eenticott-shell, @fkiraly, @jelc53, @kcc-lion, @khrapovs, @lbventura, @lmmentel, @Lovkush-A, @ltsaprounis, @mariamjabara, @MatthewMiddlehurst, @miraep8, @shchur, @soma2000-lang, @sveameyer13, @TNTran92, @tobiasweede, @ZiyaoWei
Version 0.13.0 - 2022-07-14#
Highlights#
sktimeis nowpython 3.10compatible, including the developer suiteall forecasters and transformers can deal with multivariate data, by vectorization (#2864, #2865, #2867, #2937) @fkiraly
BaggingForecasterfor adding forecast intervals via bagging (#2248) @ltsaprounisReconcilerForecasterwith more options for hierarchical reconciliation (#2940) @ciaran-gnew forecasters:
VARMAX,VECM,DynamicFactor(#2763, #2829, #2859) @KatieBuc @AurumnPegasus @lbventura @ris-bali
Dependency changes#
Python requirements and soft dependencies are now isolated to estimator classes where possible, see below.
sktimenow allowsnumpy 1.22.prophetsoft dependency now must be above 1.1, where it no longer depends onpystan.indirect soft dependency on
pystanhas been removed.soft dependency on
hcrystalballhas been removed.
Core interface changes#
Data types, checks, conversions#
VectorizedDFnow supports vectorization over columns
Dependency handling#
Python requirements and soft dependencies are now isolated to estimator classes via the
python_versionandpython_dependenciestags. This allows to bundle algorithms together with their dependency requirements.
Forecasting#
all forecasters can now make mulivariate forecasts. Univariate forecasters do so by iterating/vectorizing over variables. In that case, individual forecasters, for variables, are stored in the
forecasters_attribute.ForecastingHorizonnow stores frequency information in thefreqattribute. It can be set in the constructor via the newfreqargument, and is inferred/updated any time data is passed.
Transformations#
all transformers can now transform multivariate time series. Univariate transformers do so by iterating/vectorizing over variables. In that case, individual transformers, for variables, are stored in the
transformers_attribute.
Deprecations and removals#
Forecasting#
deprecated: use of ForecastingHorizon methods with
pd.Timestampcarryingfreqis deprecated and will raise exception from 0.14.0. Use ofpd.Timestampwill remain possible. This due to deprecation of thefreqattribute ofpd.Timestampinpandas.from 0.14.0, public
cutoffattribute of forecasters will change topd.Indexsubtype, from index element.removed: class
HCrystalBallForecaster, see #2677.
Performance metrics#
removed:
funcandnameargs from all performance metric constructors.changed: the
greater_is_betterproperty is replaced by thegreater_is_bettertag.
Time series classification#
removed:
"capability:early_prediction"tag fromBaseClassifierdescendants. Early classifiers are their own estimator type now. In order to search for early classifiers, use theearly-classifierscitype string instead of the tag.
Transformations#
removed:
Differencer-drop_naargument has been removed. Default ofna_handlingchanged tofill_zeroremoved:
lag_configargument inWindowSummarizer, please uselag_featureargument instead.
Enhancements#
Data types, checks, conversions#
Forecasting#
[ENH]
BaggingForecasterfor adding forecast intervals via bagging (#2248) @ltsaprounis[ENH] auto-vectorization over columns for univariate estimators - forecasters (#2865) @fkiraly
[ENH] auto-vectorization over columns for univariate estimators - transformers (#2867, #2937) @fkiraly
[ENH] turn private cutoff of forecasters into an index that carries
freq(#2909) @fkiraly[ENH]
VECMforecasting model (#2829) @AurumnPegasus[ENH] addressing
freqdeprecation inForecastingHorizon(#2932) @khrapovs @fkiraly[ENH] statsmodels
DynamicFactorinterface (#2859) @lbventura @ris-bali[ENH]
ReconcilerForecasterand hierarchical transformers update (#2940) @ciaran-g[ENH] Avoid accessing
.freqfrompd.Timestampby convertingcutofftopd.Index(#2965) @khrapovs[ENH] add check for forecast to have correct columns (#2972) @fkiraly
Transformations#
Fixes#
Data loaders#
[BUG]
load_UCR_UEA_datasetchecks for existence of files rather than just directories (#2899) @TonyBagnall
Data types, checks, conversions#
Forecasting#
[BUG] loosen index check related tags and fix incorrect pipeline tag inference (#2842) @fkiraly
[BUG] remove non-standard
scorefunction inBaseGridSearch(#2752) @fkiraly[BUG] fix
Prophetto have correct output column names (#2973) @fkiraly[BUG] fixing grid/random search broken delegation (#2945) @fkiraly
[BUG] forecaster vectorization for
updateand proba prediction, bugfixes (#2960) @fkiraly[BUG] fix pipeline vectorization for univariate estimators (#2959) @fkiraly
Time series classification#
[BUG] fix bug in verbose mode in CNN TSC models (#2882) @tobiasweede
[BUG] Early classification test fixes (#2980) @MatthewMiddlehurst
Transformations#
Refactored#
Maintenance#
[MNT] upgrade the
allmodules to automatic retrieval (#2845) @fkiraly[MNT] Upgrade
prophetto >=1.1 and removepystanfromall_extrasdependencies (#2887) @khrapovs[MNT] estimator upper bound tag for selective version compatibility, test exclusion (#2660) @fkiraly
[MNT] python 3.10 upgrade with estimator version tag (#2661) @fkiraly
[MNT] remove Azure build tools and dependency handling instructions (#2917) @fkiraly
[MNT] Update
numpyversion bound to<=1.22(#2979) @jlopezpena[MNT] set number of
pytest-xdistworkers toauto(#2992) @fkiraly
Documentation#
[DOC] updated forecasting tutorial with multivariate vectorization (#3000) @fkiraly
[DOC] add
_is_vectorizedto forecaster extension template exclusion list (#2878) @fkiraly[DOC] replace
AyushmaanSethname with GitHub ID (#2911) @fkiraly[DOC] Added docstrings code showing example of using
metricswithevaluate(#2850) @TNTran92[DOC] updated release process to current de-facto process (#2927) @fkiraly
Contributors#
@a-pasos-ruiz, @aiwalter, @AurumnPegasus, @ciaran-g, @fkiraly, @haskarb, @jlopezpena, @KatieBuc, @khrapovs, @lbventura, @lmmentel, @ltsaprounis, @MatthewMiddlehurst, @ris-bali, @TNTran92, @tobiasweede, @TonyBagnall
Version 0.12.1 - 2022-06-28#
Highlights#
Dependency changes#
upper bound
prophet < 1.1due tocmdstanpyincompatibility
Core interface changes#
BaseObject#
Enhancements#
BaseObject#
Forecasting#
Transformations#
Fixes#
Forecasting#
[BUG] fixed forecasters not updating
cutoffwhen in vectorization mode (#2870) @fkiraly[BUG] Fixing type conversion bug for probabilistic interval wrappers
NaiveVarianceandConformalInterval(#2815) @bethrice44[BUG] fix
Lagtransformer whennumpy.intwas passed as lag integers (#2832) @fkiraly[ENH] fix
get_windowutility whenwindow_lengthwasNone(#2866) @fkiraly
Transformations#
Documentation#
[DOC] add missing
TonyBagnallto contributors of 0.12.0 in changelog (#2803) @fkiraly[DOC] adds solution to “no matches found” to troubleshoot section of install guide (#2786) @AurumnPegasus
[DOC] cleaning up transformer API reference (#2818) @fkiraly
[DOC] team update: remove
TonyBagnallfrom CC (#2794) @fkiraly[DOC] Added
divinerby Databricks andstatsforecastby Nixtla to related software (#2873) @aiwalter
Maintenance#
Contributors#
@aiwalter, @AurumnPegasus, @bethrice44, @ciaran-g, @fkiraly, @khrapovs, @miraep8
Version 0.12.0 - 2022-06-12#
Highlights#
Time series classification: deep learning based algorithms, port of
sktime-dlintosktime(#2447) @TonyBagnallforecasting data splitters now support hierarchical data (#2599) @fkiraly
Updated forecasting and classification notebooks (#2620, #2641) @fkiraly
frequently requested algorithm: Kalman filter transformers (#2611) @NoaWegerhoff @lielleravid
frequently requested algorithm: top-down reconciler based on forecast proportions (#2664) @ciaran-g
frequently requested algorithm: empirical and conformal prediction intervals after Stankeviciute et al, 2021 (#2542, #2706) @bethrice44 @fkiraly
Dependency changes#
new soft dependencies:
pykalmanandfilterpy(for Kalman filter transformers)
Core interface changes#
BaseObject#
Forecasting#
Performance metrics#
performance metrics have a new base class design and inheritance structure. See
BaseForecastingErrorMetricdocstring documentation. Changes to the interface are downwards compatible and lay the groundwork for further refactoring.
Time series regression#
Deprecations and removals#
Data types, checks, conversions#
removed:
instance_indexandtime_indexargs fromfrom_multi_index_to_3d_numpy. Useconvertorconvert_toinstead.
Forecasting#
removed: tag
fit-in-predict, now subsumed underfit_is_emptydeprecated:
HCrystalBallForecaster, will be removed in 0.13.0. See #2677.
Performance metrics#
changed: set
symmetrichyper-parameter default toTruein all relative performance metrics.deprecated:
funcandnameargs will be removed from all performance metric constructors in 0.13.0. If these attributes are needed, they should be object or class attributes, and can be optional constructor arguments. However, it will no longer be required that all performance metrics havefuncandnameas constructor arguments.deprecated: the
greater_is_betterproperty will be replaced by thegreater_is_bettertag, in 0.13.0. Until then, implementers should set thegreater_is_bettertag. Users can still call thegreater_is_betterproperty until 0.13.0, which will alias thegreater_is_bettertag, if set.
Time series classification#
deprecated:
"capability:early_prediction"will be removed in 0.13.0 fromBaseClassifierdescendants. Early classifiers should inherit from the learning task specific base classBaseEarlyClassifierinstead.
Transformations#
removed: tag
fit-in-transform, now subsumed underfit_is_emptyremoved:
FeatureUnion’spreserve_dataframeparameterremoved:
series_as_features.composemodule, contents are intransformations.composeremoved:
transformations.series.window_summarizemodule, contents are intransformations.series.summarizechanged:
"drift","mean","median","random"methods ofImputernow use the training set (fitarguments) to compute parameters. For pre-0.12.0 behaviour, i.e., using thetransformset, wrap theImputerin theFitInTransformcompositor.
Enhancements#
BaseObject#
Data types, checks, conversions#
[ENH] Add support to
get_slicefor multi-index and hierarchical data (#2761) @bethrice44
Distances, kernels#
[ENH] TWE switch to use euclidean distance (#2639) @chrisholder
Forecasting#
[ENH] empirical and conformal probabilistic forecast intervals (Stankeviciute et al, 2021) (#2542 #2706) @bethrice44 @fkiraly
[ENH]
BaseSplitterextension: hierarchical data, direct splitting of series (#2599) @fkiraly[ENH] Top-down reconciler based on forecast proportions (#2664) @ciaran-g
[ENH] Compositor for forecasting of exogeneous data before using in exogeneous forecaster (#2674) @fkiraly
[ENH] add
ExpandingWindowSplitteras default cv inBaseForecaster.update_predict(#2679) @fkiraly
Performance metrics#
[ENH] new probabilistic metrics for interval forecasts - empirical coverage, constraint violation (#2383) @eenticott-shell
[ENH] metrics rework part II - metrics internal interface refactor (#2500) @fkiraly
[ENH] metrics rework part III - folding metric mixins into intermediate class, interface consolidation (#2502) @fkiraly
[ENH] tests for probabilistic metrics (#2683) @eenticott-shell
Pipelines#
Time series classification and regression#
[ENH] Transfer deep learning classifiers and regressors from
sktime-dl(#2447) @TonyBagnall[ENH] Proximity forest, removal of legacy conversion (#2518) @fkiraly
[ENH] update TSR base class, kNN time series regression (#2647) @fkiraly
[ENH]
DummyClassifier, naive classifier baseline (#2707) @ZiyaoWei[ENH] pipeline for time series classification from sktime transformers and sklearn classifiers (#2718) @fkiraly
Transformations#
Testing framework#
[ENH] allow different import and package names in soft dependency check (#2545) @fkiraly
[ENH] option to exclude tests/fixtures in
check_estimator(#2756) @fkiraly[ENH]
make_mock_estimatorpassing constructor args for the mocked class (#2686) @ltsaprounis[ENH]
test_update_predict_predicted_indexfor continuous data (#2701) @ltsaprounis[ENH] interface compliance test to ensure sklearn compliance of constructor (#2732) @fkiraly
[ENH]
check_estimatorsto run without soft dependencies (#2779) @fkiraly[ENH] forecasting pipeline test which triggers conversions and failure condition in #2739 (#2790) @fkiraly
[ENH] expose estimator method iteration in
TestAllEstimatorsas test fixture (#2781) @fkiraly
Governance#
Fixes#
Clustering#
Data types, checks, conversions#
Distances, kernels#
[BUG] fixed bug with distance factory 1d arrays (#2691) @chrisholder
[BUG] fixed constructor non-compliance with sklearn:
ShapeDTW(#2773) @fkiraly
Forecasting#
[BUG] Fix incorrect
update_predictarg default and docstring oncvarg (#2589) @aiwalter[BUG] Fix
Prophetwith logistic growth #1079 (#2609) @k1m190r[BUG]
ignores-exogeneous-Xtag correction forUnobservedComponents(#2666) @fkiraly[BUG] fixed
StackingForecasterfor exogeneous data (#2667) @fkiraly[BUG] fixed
pmdarimainterface index handling ifXindex set is strictly larger thanyindex set (#2673) @fkiraly[BUG] Fix duration to
intcoercion forpd.tseries.offsets.BaseOffset(#2726) @khrapovs[BUG] fixed overlap in
NaiveVariancetrain/test set due to inclusive indexing for timestamp limits (#2760) @bethrice44[BUG] fixed constructor non-compliance with sklearn:
AutoETS(#2736) @fkiraly[BUG] fixed constructor non-compliance with sklearn:
UnobservedComponents(#2773) @fkiraly[BUG] fixed
sarimax_kwargsinARIMAandAutoARIMAbeing incompliant with scikit-learn interface (#2731, #2773) @fkiraly[BUG] add patch to ensure column/name preservation in
NaiveForecaster(#2793) @fkiraly
Time series classification and regression#
Transformations#
[BUG] fix typo in author variable for boxcox module (#2642) @fkiraly
[BUG]
TransformerPipelinefix for vectorization edge cases and sklearn transformers (#2644) @fkiraly[BUG]
SummaryTransformermultivariate output fix and tests for series-to-primitives transform output (#2720) @fkiraly[BUG] fixing constructor non-compliance with sklearn:
PCATransformer(#2734) @fkiraly
Maintenance#
[MNT] Added deprecation warning for
HCrystalBallForecaster(#2675) @aiwalter[MNT] Replace deprecated argument
squeezewith the method .squeeze(“columns”) in pd.read_csv (#2693) @khrapovs[MNT] Replace
pandas.DataFrame.appendwithpandas.concatto address future deprecation (#2723) @khrapovs[MNT] Removed redundant
todofromtransformer_simpleextension template (#2740) @NoaWegerhoff[MNT] Address various future warnings from
pandasandnumpy(#2725) @khrapovs[MNT] remove accidental
codecovoverwrite fromnosoftdeps(#2782) @fkiraly[MNT] deprecation actions scheduled for 0.12.0 release (#2747) @fkiraly
Refactored#
Documentation#
[DOC] Classification notebook clean-up, added new pipelines (#2641) @fkiraly
[DOC] Text changes example notebooks (#2648) @lbventura
[DOC] update doc location of
TimeSeriesForestClassifierfromkernel_basedtointerval_basedinget_started.rst(#2722) @dougollerenshaw[DOC] Fixes in class description
ExpandingWindowSplitter(#2676) @keepersas[DOC] Fixed A Few Links on the Website (#2688) @asattiraju13
[DOC] reserved variables listed in extension templates (#2769) @fkiraly
[DOC] Fix broken link to governance website page in governance.md (#2795) @DBCerigo
[DOC] cleaning up forecasting API reference (#2798) @fkiraly
Contributors#
@aiwalter, @asattiraju13, @bethrice44, @chrisholder, @ciaran-g, @DBCerigo, @dougollerenshaw, @eenticott-shell, @fkiraly, @k1m190r, @keepersas, @khrapovs, @lbventura, @lielleravid, @ltsaprounis, @miraep8, @NoaWegerhoff, @Ris-Bali, @TonyBagnall, @ZiyaoWei
Version 0.11.4 - 2022-05-13#
Highlights#
maintenance update for compatibility with recent
scikit-learn 1.1.0release
Dependency changes#
Added defensive upper bound
scikit-learn<1.2.0
Maintenance#
Enhancements#
BaseObject#
Clustering#
[ENH] Dynamic Time Warping Barycenter Averaging (DBA) (#2582) @chrisholder
Data types, checks, conversions#
Distances, kernels#
[ENH] Twe distance (#2553) @chrisholder
Forecasting#
Time series classification#
decrease ensemble size for DrCIF (#2595) @TonyBagnall
Transformations#
Fixes#
BaseObject#
Clustering#
[BUG] Clustering lloyds algorithm early exit incorrectly (#2572) @chrisholder
[BUG] fixed bug where no average params passed (#2592) @chrisholder
[BUG] Twe distance running slow due to numpy and numba interaction (#2605) @chrisholder
Forecasting#
Testing framework#
Contributors#
@chrisholder, @ciaran-g, @fkiraly, @khrapovs, @miraep8, @phershbe, @Ris-Bali, @TonyBagnall
Version 0.11.3 - 2022-04-29#
Highlights#
sktimeis now compatible withscipy 1.8.Xversions (#2468, #2474) @fkiralydunder method for forecasting pipelines: write
trafo * forecaster * my_postprocforTransformedTargetForecasterpipeline (#2404) @fkiralydunder method for multiplexing/autoML: write
forecaster1 | forecaster2 | forecaster3forMultiplexForecaster, used in tuning over forecasters (#2540) @miraep8dunders combine with existing transformer pipeline and feature union, e.g.,
trafo1 * trafo2 * forecasteror(trafo1 + trafo2) * forecasterprediction intervals for
UnobservedComponentsforecaster (#2454) @juanitorduznew argument
return_tagsofall_estimatorsallows listing estimators together with selected tags (#2410) @miraep8
Dependency changes#
Upper bound on
scipyrelaxed toscipy<1.9.0,sktimeis now compatible withscipy 1.8.Xversions.
Core interface changes#
All Estimators#
All estimators now have a reset method which resets objects a clean post-init state, keeping hyper-parameters.
Equivalent to clone but overwrites self.
Forecasting#
Forecasters have two new dunder methods. Invoke dunders for easy creation of a pipeline object:
*with a transformer creates forecasting pipeline, e.g.,my_trafo1 * my_forecaster * my_postproc. Transformers before the forecaster are used for pre-processing in aTransformedTargetForecaster. Transformers after the forecaster are used for post-processing in aTransformedTargetForecaster.|with another forecaster creates a multiplexer, e.g.,forecaster1 | forecaster2 | forecaster 3. Result is of classMultiplexForecasterwhich can be combined with grid search for autoML style tuning.
Dunder methods are compatible with existing transformer dunders * (pipeline) and + (feature union).
Forecaster update_predict now accepts an additional boolean argument reset_forecaster.
If reset_forecaster = True (default and current intended behaviour), forecaster state does not change.
If reset_forecaster = False, then update, predict sequence updates state.
In 0.13.0, the default will change to reset_forecaster = False.
Deprecations#
Forecasting#
Forecaster update_predict default behaviour will change from reset_forecaster = True to reset_forecaster = False, from 0.13.0 (see above).
Transformations#
Differencer: drop_na argument will be deprecated from 0.12.0 and removed in 0.13.0.
It will be replaced bz the na_handling argument and a default of "fill_zero".
WindowSummarizer: lag_config will be deprecated from 0.12.0 and removed in 0.13.0.
It will be replaced by the lag_feature argument and new specification syntax for it.
Enhancements#
BaseObject#
Data types, checks, conversions#
Forecasting#
[ENH] prediction intervals for
UnobservedComponentsforecaster (#2454) @juanitorduz[ENH] remove error message on exogeneous
Xfrom DirRec reducer (#2463) @fkiraly[ENH] replace
np.arangebynp.arghwerein splitters to enable time based indexing and selection (#2394) @khrapovs[ENH] Test
SingleWindowSplitterwith Timedelta forecasting horizon (#2392) @khrapovs[ENH]
Aggregator: remove index naming requirement (#2479) @ciaran-g[ENH]
MultiplexForecastercompatibility with multivariate, probabilistic and hierarchical forecasting (#2458) @fkiraly[ENH]
DifferencerNA handling - “fill zero” parameter (#2487) @fkiraly[ENH] Add
random_statetostatsmodelsadapter and estimators (#2440) @ris-bali[ENH] Added
|dunder method forMultiplexForecaster(#2540) @miraep8
Registry#
Testing framework#
Transformations#
Fixes#
Clustering#
[BUG] Fixed medoids in kmedoids being taken across all data instead of cluster-wise (#2548) @chrisholder
Data types, checks, conversions#
Distances, kernels#
[BUG] Distances fixed bug where bounding matrix was being rounded incorrectly (#2549) @chrisholder
Forecasting#
[BUG] refactor
_predict_moving_cutoffand bugfix, outerupdate_predict_singleshould be called (#2466) @fkiraly[BUG] fix
ThetaForecaster.predict_quantilesbreaking onpd.DataFrameinput (#2529) @fkiraly[BUG] bugfix for default
_predict_varimplementation (#2538) @fkiraly[BUG] ensure row index names are preserved in hierarchical forecasting when vectorizing (#2489) @fkiraly
[BUG] Fix type checking error due to pipeline type polymorphism when constructing nested pipelines (#2456) @fkiraly
[BUG] fix for
update_predictstate handling bug, replace detached cutoff bydeepcopy(#2557) @fkiraly[BUG] Fixes the index name dependencies in
WindowSummarizer(#2567) @ltsaprounis[BUG] Fix non-compliant output of
ColumnEnsembleForecaster.pred_quantiles,pred_interval(#2512) @eenticott-shell
Time series classification#
Transformations#
Testing framework#
Refactored#
[ENH] changed references to
fit-in-transformtofit_is_empty(#2494) @fkiraly[ENH] Legacy test refactor - move
test_data_processing, mtype handling intest_classifier_output(#2506) @fkiraly[ENH]
MockForecasterwithout logging,MockUnivariateForecasterclean-up (#2539) @fkiraly[ENH] metrics rework part I - output format tests (#2496) @fkiraly
[ENH] simplify
load_from_tsfile, support more mtypes (#2521) @fkiraly[ENH] removing dead args and functions post
_predict_moving_cutoffrefactor (#2470) @fkiraly
Maintenance#
[MNT] upgrade codecov uploader and cleanup coverage reporting (#2389) @tarpas
[MNT] fix soft dependency handling for
esigimports (#2414) @fkiraly[MNT] Make the contrib module private (#2422) @MatthewMiddlehurst
[MNT] disabling aggressive
dtw_pythonimport message (#2439) @KatieBuc[MNT] loosen strict upper bound on
scipyto 1.9.0 (#2474) @fkiraly[MNT] Remove accidentally committed prob integration notebook (#2476) @eenticott-shell
[MNT] Proximity forest faster test param settings (#2525) @fkiraly
[MNT] Fix tests to prevent all guaranteed
check_estimatorfailures (#2411) @danbartl[MNT] added
pytest-timeouttime limit of 10 minutes (#2532, #2541) @fkiraly[MNT] turn on tests for no state change in
transform,predict(#2536) @fkiraly[MNT] switch scipy mirror to anaconda on windows to resolve
gfortranFileNotFoundErrorin all CI/CD (#2561) @fkiraly[MNT] Add a script to generate changelog in
rstformat (#2449) @lmmentel
Documentation#
[DOC] Broken Links in Testing Framework Doc (#2450) @Tomiiwa
[DOC] remove GSoC announcement from landing page after GSoC deadline (#2543) @GuzalBulatova
[DOC] fix typo in sktime install instructions, causes “invalid requirement error” if followed verbatim (#2503) @Samuel-Oyeneye
Contributors#
@aiwalter, @chrisholder, @ciaran-g, @danbartl, @eenticott-shell, @fkiraly, @GuzalBulatova, @juanitorduz, @KatieBuc, @khrapovs, @lmmentel, @ltsaprounis, @MatthewMiddlehurst, @miraep8, @ris-bali, @Samuel-Oyeneye, @tarpas, @Tomiiwa
Version 0.11.2 - 2022-04-11#
Fixes#
Version 0.11.1 - 2022-04-10#
Highlights#
GSoC 2022 application instructions - apply by Apr 19 for GSoC with sktime! (#2373) @lmmentel @Lovkush-A @fkiraly
enhancements and bugfixes for probabilistic and hierarchical forecasting features introduced in 0.11.0
reconciliation transformers for hierarchical predictions (#2287, #2292) @ciaran-g
pipeline, tuning and evaluation compatibility for probabilistic forecasting (#2234, #2318) @eenticott-shell @fkiraly
reduction with transform-on-y predictors (e.g., lags, window summaries), and for hierarchical data (#2396) @danbartl
Core interface changes#
Data types, checks, conversions#
the
pd-multiindexmtype was relaxed to allow arbitrary level names
Forecasting#
probabilistic forecasting interface now also available for auto-vectorization cases
probabilistic forecasting interface now compatible with hierarchical forecasting interface
Enhancements#
Data types, checks, conversions#
[ENH] tsf loader to allow specification of return mtype (#2103) @ltsaprounis
[ENH] relax name rules for multiindex - fixed omission in
from_multi_index_to_nested(#2384) @ltsaprounis
Forecasting#
[ENH] require uniqueness from multiple alpha/coverage in interval/quantile forecasts (#2326) @fkiraly
[ENH] Adding
fitparameters toVARconstructor #1850 (#2304) @TNTran92[ENH] vectorization for probabilistic forecasting methods that return
pd.DataFrame(#2355) @fkiraly[ENH] adding compatibility with probabilistic and hierarchical forecasts to
ForecastingPipelineandTransformedTargetForecaster(#2318) @fkiraly[ENH] Allow
pd.Timedeltavalues inForecastingHorizon(#2333) @khrapovs[ENH] probabilistic methods for
ColumnEnsembleForecaster(except predict_proba) (#2356) @fkiraly[ENH]
NaiveVariance: verbose arg and extended docstring (#2395) @fkiraly[ENH] Grid search with probabilistic metrics (#2234) @eenticott-shell
[ENH] wrapper for stream forecasting (
update_predictuse) to trigger regular refit (#2305) @fkiraly[ENH] post-processing in
TransformedTargetForecaster, dunder method for (transformed y) forecasting pipelines (#2404) @fkiraly[ENH] suppressing deprecation messages in
all_estimatorsestimator retrieval, address dtw import message (#2418) @katiebuc[ENH] improved error message in forecasters when receiving an incompatible input (#2314) @fkiraly
[ENH]
NaiveVariance: verbose arg and extended docstring (#2395) @fkiraly[ENH] Prohibit incompatible splitter parameters (#2328) @khrapovs
[ENH] added interface to
statsmodelsSARIMAX(#2400) @TNTran92[ENH] extending reducers to hierarchical data, adding transformation (#2396) @danbartl
Time series classification#
Transformations#
Maintenance#
[ENH] test generation error to raise and not return (#2298) @fkiraly
[ENH] Remove
pd.Int64Indexdue to impending deprecation (#2339, #2390) @khrapovs[MNT] removing unused imports from
tests._config(#2358) @fkiraly[ENH] scenarios for hierarchical forecasting and tests for probabilistic forecast methods (#2359) @fkiraly
[MNT] fixing click/black incompatibility in CI (#2353, #2372) @fkiraly
[ENH] tests for
check_estimator`tests passing (#2408) @fkiraly[ENH] Fix tests to prevent guaranteed
check_estimatorfailure (#2405) @danbartl
Refactored#
[ENH] remove non-compliant
fit_paramskwargs throughout the code base (#2343) @fkiraly[ENH] Classification expected output test updates (#2295) @MatthewMiddlehurst
[ENH] Transformers module full refactor - part III, panel module (2nd batch) (#2253) @fkiraly
[ENH] Transformers module full refactor - part IV, panel module (3rd batch) (#2369) @fkiraly
[ENH] test parameter refactor:
TSInterpolator(#2342) @NoaWegerhoff[ENH] move “sktime forecaster tests” into
TestAllForecastersclass (#2311) @fkiraly[ENH] upgrade
BasePairwiseTransformerto use datatypes input conversions and checks (#2363) @fkiraly[ENH] extend
_HeterogeneousMetaEstimatorestimator to allow mixed tuple/estimator list (#2406) @fkiraly[MNT] test parameter refactor: forecasting reducers and
ColumnEnsembleClassifier(#2223) @fkiraly[ENH] refactoring
test_all_transformersto test class architecture (#2252) @fkiraly
Fixes#
Forecasting#
Transformations#
[BUG]
TSInterpolatorandnested_univcheck fix (#2259) @fkiraly[BUG][ENH] WindowSummarizer offset fix, easier lag specification (#2316) @danbartl
[BUG]
FeatureUnionoutput column names fixed (#2324) @fkiraly[ENH][BUG] fixes and implementations of missing
inverse_transformin transformer compositions (#2322) @fkiraly
Documentation#
[DOC] fix 0.11.0 release note highlights formatting (#2310) @fkiraly
[DOC] typo fix constructor -> constructor in extension templates (#2348) @fkiraly
[DPC] fixed the issue with
'docs/source/developer_guide/testing_framework.rst'(#2335) @0saurabh0[DOC] Updated conda installation instructions (#2365) @RISHIKESHAVAN
[DOC] updated extension templates: link to docs and reference to check_estimator (#2303) @fkiraly
[DOC] Added docstring examples to load data functions (#2393) @aiwalter
[DOC] Add GSoC 2022 landing page and announcement (#2373) @lmmentel
[DOC] In interval_based_classification example notebook, use multivariate dataset for the multivariate examples (#1822) @ksachdeva
Contributors#
@0saurabh0, @aiwalter, @ciaran-g, @danbartl, @eenticott-shell, @fkiraly, @katiebuc, @khrapovs, @ksachdeva, @lmmentel, @ltsaprounis, @MatthewMiddlehurst, @NoaWegerhoff, @RISHIKESHAVAN, @TNTran92
Version 0.11.0 - 2022-03-26#
Highlights#
multivariate forecasting, probabilistic forecasting section in forecasting tutorial (#2041) @kejsitake
hierarchical & global forecasting: forecaster and transformer interfaces are now compatible with hierarchical data, automatically vectorize over hierarchy levels (#2110, #2115, #2219) @danbartl @fkiraly
probabilistic forecasting:
predict_var(variance forecast) andpredict_proba(full distribution forecast) interfaces; performance metrics for interval and quantile forecasts (#2100, #2130, #2232) @eenticott-shell @fkiraly @kejsitakedunder methods for transformer and classifier pipelines: write
my_trafo1 * my_trafo2for pipeline,my_trafo1 + my_trafo2forFeatureUnion(#2090, #2251) @fkiralyFrequently requested:
AutoARIMAfromstatsforecastpackage available asStatsforecastAutoARIMA(#2251) @FedericoGarzafor extenders: detailed “creating sktime compatible estimator” guide
for extenders: simplified extension templates for forecasters and transformers (#2161) @fkiraly
Dependency changes#
sktimehas a new optional dependency set for deep learning, consisting oftensorflowandtensorflow-probabilitynew soft dependency:
tslearn(required fortslearnclusterers)new soft dependency:
statsforecast(required forStatsforecastAutoARIMA)
Core interface changes#
Data types, checks, conversions#
new
Hierarchicalscientific type for hierarchical time series data, with mtype formatpd_multiindex_hier(row-multiindexed series)new
Tablescientific type for “ordinary” tabular (2D data frame like) data which is not time series or sequentialmultiple mtype formats for the
Tablescientific type:numpy1D,numpy2D,pd_DataFrame_Table,pd_Series_Table,list_of_dictnew
Probascientific type for distributions and distribution like objects (used in probabilistic forecasting)
Forecasting#
forecasters now also accept inputs of
Paneltype (panel and global forecasters) andHierarchicaltype (hierarchical forecasters)when a forecaster is given
PanelorHierarchicalinput, and onlySerieslogic is defined, the forecaster will automatically loop over (series) instanceswhen a forecaster is given
Hierarchicalinput, and onlyPanelorSerieslogic is defined, the forecaster will automatically loop over (panel) instancesnew probabilistic forecasting interface for probabilistic forecasts:
new method
predict_var(fh, X, cov=False)for variance forecasts, returns time series of predictive variancesnew method
predict_proba(fh, X, marginal=True)for distribution forecasts, returnstensorflowDistribution
Time series classification#
dunder method for pipelining classifier and transformers:
my_trafo1 * my_trafo2 * my_clfwill create aClassifierPipeline(sklearncompatible)
Transformations#
transformers now also accept inputs of
Paneltype (panel and global transformers) andHierarchicaltype (hierarchical transformers)when a transformer is given
PanelorHierarchicalinput, and onlySerieslogic is defined, the transformer will automatically loop over (series) instanceswhen a transformer is given
Hierarchicalinput, and onlyPanelorSerieslogic is defined, the transformer will automatically loop over (panel) instancesTablescientific type is used as output of transformers returning “primitives”dunder method for pipelining transformers:
my_trafo1 * my_trafo2 * my_trafo3will create a (single)TransformerPipeline(sklearncompatible)dunder method for
FeatureUnionof transformers:my_trafo1 + my_trafo2 + my_trafo3will create a (single)FeatureUnion(sklearncompatible)transformer dunder pipeline is compatible with
sklearntransformers, automatically wrapped in aTabularToSeriesAdaptor
Deprecations and removals#
Data types, checks, conversions#
Forecasting#
removed:
return_pred_intargument in forecasterpredict,fit_predict,update_predict_single. Replaced bypredict_intervalandpredict_quantilesinterface.deprecated:
fit-in-predicttag is deprecated and renamed tofit_is_empty. Old tagfit-in-predictcan be used until 0.12.0 when it will be removed.deprecated: forecasting metrics
symmetricargument default will be changed toFalsein 0.12.0. Until then the default isTrue.
Transformations#
removed: series transformers no longer accept a Z argument - use first argument X instead (#1365, #1730)
deprecated:
fit-in-transformtag is deprecated and renamed tofit_is_empty. Old tagfit-in-transformcan be used until 0.12.0 when it will be removed.deprecated: old location in
series_as_featuresofFeatureUnion, has moved totransformations.compose. Old location is still importable from until 0.12.0.deprecated:
preserve_dataframeargument ofFeatureUnion, will be removed in 0.12.0.deprecated: old location in
transformations.series.windows_summarizerofWindowSummarizer, has moved totransformations.series.summarize. Old location is still importable from until 0.12.0.
Enhancements#
Data types, checks, conversions#
[ENH] cutoff getter for Series, Panel, and Hierarchical mtypes (#2115) @fkiraly
[ENH] Gettimeindex to access index of hierarchical data (#2110) @danbartl
[ENH] datatypes support for interval and quantile based probabilistic predictions (#2130) @fkiraly
[ENH] Relaxing pd-multiindex mtype to allow string instance index (#2262) @fkiraly
Data sets and data loaders#
[ENH] hierarchical mtype generator (#2093) @ltsaprounis
Clustering#
[ENH]
tslearnadded as soft dependency and used to add new clusterers. (#2048) @chrisholder[ENH] Add user option to determine return type in single problem clustering/classification problems (#2139) @TonyBagnall
Distances, kernels#
[ENH] minor changes to Lcss distance (#2119) @TonyBagnall
[ENH] factory to add 3D capability to all distances exported by distances module (#2051) @fkiraly
Forecasting#
[ENH] Add
AutoARIMAfrom StatsForecast (#2251) @FedericoGarza[ENH] Naive variance prediction estimator/wrapper (#1865) @IlyasMoutawwakil
[ENH]
predict_probafor forecasters, tensorflow-probability dependency (#2100) @fkiraly[ENH] Probabilistic forecasting metrics (#2232) @eenticott-shell
[ENH]
_predict_fixed_cutoffforHierarchicaldata (#2094) @danbartl[ENH] Change default of percentage error functions to
symmetric=False(#2069) @ciaran-g
Time series classification#
[ENH] Add user option to determine return type in single problem clustering/classification problems (#2139) @TonyBagnall
[ENH] TEASER early classification implementation (#2162) @MatthewMiddlehurst
[ENH] Classifier pipeline and dunder method (#2164) @fkiraly
[ENH] Introduce
classifier_typetag (#2165) @MatthewMiddlehurst[ENH] sklearn model selection tests for classification (#2180) @MatthewMiddlehurst
[ENH] Rocket transformer: changed precision to float32 (#2135) @RafaAyGar
Transformations#
[ENH] Univariate time series bootstrapping (#2065) @ltsaprounis
[ENH] changed FunctionTransformer._fit to common signature (#2205) @fkiraly
[ENH] Upgrade of
BaseTransformerto use vectorization utility, hierarchical mtype compatibility (#2219) @fkiraly[ENH]
WindowSummarizerto deal with hierarchical data (#2154) @danbartl[ENH] Transformer pipeline and dunder method (#2090) @fkiraly
[ENH] Tabular transformer adaptor “fit in transform” parameter (#2209) @fkiraly
[ENH] dunder pipelines sklearn estimator support (#2210) @fkiraly
Testing framework#
Governance#
added @danbartl to core developer list
added @ltsaprounis to core developer list (#2236) @ltsaprounis
Fixed#
[BUG] fixed state change caused by ThetaForecaster.predict_quantiles (#2108) @fkiraly
[BUG]
_make_hierarchicalis renamed to_make_hierarchical(typo/bug) issue #2195 (#2196) @Vasudeva-bit[BUG] fix wrong output type of
PaddingTransformer._transform(#2217) @fkiraly[BUG] Testing vectorization for forecasters, plus various bugfixes (#2188) @fkiraly
[BUG] fixed
ignores-exogeneous-Xtag for forecasting reducers (#2230) @fkiraly[BUG] fixing
STLBootstrapTransformererror message and docstrings (#2260) @fkiraly[BUG] fix conversion interval->quantiles in BaseForecaster, and fix ARIMA.predict_interval (#2281) @fkiraly
[BUG] Fix windows bug with index freq in
VectorizedDF.__getitem__(#2279) @ltsaprounis[BUG] fixes duplication of Returns section in
_predict_vardocstring (#2306) @fkiraly[BUG] Fixed bug with
check_pdmultiindex_panel(#2092) @danbartl[BUG] Fixed crash of kmeans, medoids when empty clusters are generated (#2060) @chrisholder
[BUG] Addressing doc build issue due to failed soft dependency imports (#2170) @fkiraly
Deprecation handling: sklearn 1.2 deprecation warnings (#2190) @hmtbgc
Deprecation handling: Replacing normalize by use of StandardScaler (#2167) @KishenSharma6
Documentation#
[DOC] forecaster tutorial: multivariate forecasting, probabilistic forecasting (#2041) @kejsitake
[DOC] simplified extension templates for transformers and forecasters (#2161) @fkiraly
[DOC] contributing page: concrete initial steps (#2227) @fkiraly
[DOC] adding “troubleshooting” link in sktime installation instructions (#2121) @eenticott-shell
[DOC] enhance distance doc strings (#2122) @TonyBagnall
[DOC] updated soft dependency docs with two tier check (#2182) @fkiraly
[DOC] replace gitter mentions by appropriate links, references (#2187) @TonyBagnall
[DOC] updated the environments doc with python version for sktime, added python 3.9 (#2199) @Vasudeva-bit
[DOC] Replaced youtube link with recent PyData Global (#2191) @aiwalter
[DOC] extended & cleaned docs on dependency handling (#2189) @fkiraly
[DOC] migrating mentoring form to sktime google docs (#2222) @fkiraly
[DOC] add scitype/mtype register pointers to docstrings in datatypes (#2160) @fkiraly
[DOC] improved docstrings for HIVE-COTE v1.0 (#2239) @TonyBagnall
[DOC] typo fix and minor clarification in estimator implementation guide (#2241) @fkiraly
[DOC] numpydoc compliance fix of simple forecasting extension template (#2284) @fkiraly
[DOC] typos in
developer_guide.rst(#2131) @theanorak
Maintenance#
speed up EE tests and ColumnEnsemble example (#2124) @TonyBagnall
[MNT] add xfails in test_plotting until #2066 is resolved (#2144) @fkiraly
[MNT] add skips to entirety of test_plotting until #2066 is resolved (#2147) @fkiraly
[ENH] improved deep_equals return message if dict`s are discrepant (:pr:`2107) @fkiraly
[BUG] Addressing doc build issue due to failed soft dependency imports (#2170) @fkiraly
[ENH] extending deep_equals for ForecastingHorizon (#2225) @fkiraly
[MNT] Faster docstring examples - ForecastingGridSearchCV, MultiplexForecaster (#2229) @fkiraly
[BUG] remove test for StratifiedGroupKFold (#2244) @TonyBagnall
[ENH] Classifier type hints (#2246) @MatthewMiddlehurst
Updated pre-commit link and also grammatically updated Coding Style docs (#2285) @Tomiiwa
[ENH] Mock estimators and mock estimator generators for testing (#2197) @ltsaprounis
[BUG] fixing pyproject and jinja2 CI failures (#2299) @fkiraly
[DOC] Update PULL_REQUEST_TEMPLATE.md so PRs should start with [ENH], [DOC] or [BUG] in title (#2293) @aiwalter
[MNT] add skips in test_plotting until #2066 is resolved (#2146) @fkiraly
Refactored#
[ENH] Clustering experiment save results formatting (#2156) @TonyBagnall
[ENH] replace
np.isnanbypd.isnullindatatypes(#2220) @fkiraly[ENH] renamed
fit-in-transformandfit-in-predicttofit_is_empty(#2250) @fkiraly[ENH] refactoring test_all_classifiers to test class architecture (#2257) @fkiraly
[ENH] test parameter refactor: all classifiers (#2288) @MatthewMiddlehurst
[ENH] test parameter refactor:
Arsenal(#2273) @dionysisbacchus[ENH] test parameter refactor:
RocketClassifier(#2166) @dionysisbacchus[ENH] test parameter refactor:
TimeSeriesForestClassifier(#2277) @lielleravid[ENH]
FeatureUnionrefactor - moved totransformations, tags, dunder method (#2231) @fkiraly[ENH]
AutoARIMAfromstatsforecasttoStatsForecastAutoARIMA(#2272) @FedericoGarza
Contributors#
@aiwalter, @cdahlin, @chrisholder, @ciaran-g, @danbartl, @dionysisbacchus, @eenticott-shell, @FedericoGarza, @fkiraly, @hmtbgc, @IlyasMoutawwakil, @kejsitake, @KishenSharma6, @lielleravid, @lmmentel, @ltsaprounis, @MatthewMiddlehurst, @mikofski, @RafaAyGar, @theanorak, @Tomiiwa, @TonyBagnall, @Vasudeva-bit,
[0.10.1] - 2022-02-20#
Highlights#
This release is mainly a maintenance patch which upper bounds
scipy<1.8.0to prevent bugs due to interface changes inscipy.Once
sktimeis compatible withscipy 1.8.0, the upper bound will be relaxedNew transformer: lagged window summarizer transformation (#1924) @danbartl
Loaders for
.tsfdata format (#1934) @rakshitha123
Dependency changes#
Introduction of bound
scipy<1.8.0, to prevent bugs due to interface changes inscipyOnce
sktimeis compatible withscipy 1.8.0, the upper bound will be relaxed
Added#
Documentation#
[DOC] improvements to the forecasting tutorial (#1834) @baggiponte
[DOC] Fix wrong conda command to install packages (#1973) @schettino72`
[DOC] Fix minor documentation issues (#2035) @Saransh-cpp
[DOC] Fixed link from README to classification notebook (#2042) @Rubiel1
Data sets and data loaders#
[ENH] Added loaders for
.tsfdata format (#1934) @rakshitha123[ENH] Added
.tsfdataset for unit testing (#1996) @rakshitha123
Data types, checks, conversions#
Forecasting#
Transformations#
Maintenance#
[MNT] Update wheels CI/CD workflow after dropping C extensions and Cython (#1972) @lmmentel
[MNT] Rename classification notebooks (#1980) @TonyBagnall
[MNT] replace deprecated
np.strandnp.float(#1997) @fkiraly[MNT] Remove
pytest-xdistfrom CI-CD, un-skip test_multiprocessing_idempotent (#2004) @fkiraly[MNT] Changing function names in datatypes check to lower_snake_case (#2014) @chicken-biryani
[MNT] verbose output for
linuxandmactests (#2045) @Saransh-cpp[MNT] GitHub Actions: cancel old but running workflows of a PR when pushing again (#2063) @RishiKumarRay
Fixed#
[BUG] remove MrSEQL notebook in docs (#1974) @TonyBagnall
[BUG] fix import on clustering extension template (#1978) @schettino72
[BUG] HC2 component bugfixes (#2020) @MatthewMiddlehurst
[BUG] fix conversion of
nested_univtopd-multiindexmtype if series have names (#2000) @fkiraly[BUG]
MiniRocketto comply with sklearn init specification, fixrandom_statemodification in__init__(#2027) @fkiraly[BUG] naive forecaster window error (#2047) @eenticott-shell
[BUG] Fix silent bug in
ColumnsEnsembleForecaster._predict(#2083) @aiwalter
Contributors#
@aiwalter, @baggiponte, @chicken-biryani, @danbartl, @eenticott-shell, @fkiraly, @khrapovs, @lmmentel, @MatthewMiddlehurst, @rakshitha123, @RishiKumarRay, @Rubiel1, @Saransh-cpp, @schettino72,
[0.10.0] - 2022-02-02#
Highlights#
sktimenow supports python 3.7-3.9. Python 3.6 is no longer supported, due to end of life. Lastsktimeversion to support python 3.6 was 0.9.0.sktimenow supports, and requires,numpy>=1.21.0andstatsmodels>=0.12.1overhaul of docs for installation and first-time developers (#1707) @amrith-shell
all probabilistic forecasters now provide
predict_intervalandpredict_quantilesinterfaces (#1842, #1874, #1879, #1910, #1961) @fkiraly @k1m190r @kejsitakenew transformation based pipeline classifiers (#1721) @MatthewMiddlehurst
developer install for
sktimeno longer requires C compilers andcython(#1761, #1847, #1932, #1927) @TonyBagnallCI/CD moved completely to GitHub actions (#1620, #1920) @lmmentel
Dependency changes#
sktimenow supportspython3.7-3.9 on windows, mac, and unix-based systemssktimenow supports, and requires,numpy>=1.21.0andstatsmodels>=0.12.1sktimeProphetinterface now usesprophetinstead of deprecatedfbprophetdeveloper install for
sktimeno longer requires C compilers andcython
Core interface changes#
Forecasting#
New probabilistic forecasting interface for quantiles and predictive intervals:
for all forecasters with probabilistic forecasting capability, i.e.,
capability:pred_inttagnew method
predict_interval(fh, X, coverage)for interval forecastsnew method
predict_quantiles(fh, X, alpha)for quantile forecastsboth vectorized in
coverage,alphaand applicable to multivariate forecastingold
return_pred_intinterface is deprecated and will be removed in 0.11.0see forecaster base API and forecaster extension template
Convenience method to return residuals:
all forecasters now have a method
predict_residuals(y, X, fh)if
fhis not passed, in-sample residuals are computed
Transformations#
Base interface refactor rolled out to series transformers (#1790, #1795):
fit,transform,fit_transformnow accept bothSeriesandPanelas argumentif
Panelis passed to a series transformer, it is applied to all instancesall transformers now have signature
transform(X, y=None)andinverse_transform(X, y=None). This is enforced by the new base interface.Z(former first argument) aliasesXuntil 0.11.0 in series transformers, will then be removedX(former second argument) was not used in those transformers, was changed toysee transformer base API and transformer extension template
Deprecations and removals#
Data types, checks, conversions#
Forecasting#
deprecated, scheduled for removal in 0.11.0:
return_pred_intargument in forecasterpredict,fit_predict,update_predict_single. Replaced bypredict_intervalandpredict_quantilesinterface.
Time series classification#
Removed:
MrSEQLtime series classifier (#1548) @TonyBagnallRemoved
RISFand shapelet classifier (#1907) @TonyBagnalldata.iomodule moved to datasets (#1907) @TonyBagnall
Transformations#
Added#
Documentation#
[DOC] updates to forecaster and transformer extension template (#1774, #1853) @fkiraly
[DOC] updated
get_test_paramsextension template docs regarding imports (#1811) @fkiraly[DOC] reformatted the documentation structure (#1707) @amrith-shell
[DOC] Updated classification notebook (#1885) @TonyBagnall
Data types, checks, conversions#
[ENH]
check_is_scitype, cleaning up dists_kernels input checks/conversions (#1704) @fkiraly[ENH] Table scitype and refactor of
convertmodule (#1745) @fkiraly[ENH] experimental: hierarchical time series scitype hierarchical_scitype (#1786) @fkiraly
[ENH] upgraded
mtype_to_scitypeto list-like args (#1807) @fkiraly[ENH] vectorization/iteration utility for sktime time series formats (#1806) @fkiraly
Data sets and data loaders#
[ENH] Update dataset headers (#1752) @tonybagnall
[ENH] Classification dataset tidy-up (#1785) @tonybagnall
[ENH] polymorphic data loader in contrib (#1840) @tonybagnall
[ENH] move functions and tests from utils/data_io to datasets/_data_io (#1777) @tonybagnall
Clustering#
[ENH] Clustering module refactor (#1864) @chrisholder
[ENH]
fitrepeated initialization in Lloyd’s algorithm (#1897) @chrisholder
Distances, kernels#
Forecasting#
[ENH] Scaled Logit Transformer (#1913, #1965) @ltsaprounis.
[ENH] add
fitparameters to statsmodels Holt-Winters exponential smoothing interface (#1849) @fkiraly[ENH] Add
predict_quantilesto FBprophet (#1910) @kejsitake[ENH] Add
`predict_quantilesto ets, pmdarima adapter (#1874) @kejsitake[ENH] Defaults for
_predict_intervaland_predict_coverage(#1879, #1961) @fkiraly[ENH] refactored column ensemble forecaster (#1764) @Aparna-Sakshi
[ENH] Forecaster convenience method to return forecast residuals (#1770) @fkiraly
[ENH] Update extension template for predict_quantiles (#1780) @kejsitake
[ENH] Prediction intervals refactor: BATS/TBATS; bugfix for #1625; base class updates on
predict_quantiles(#1842) @k1m190r[ENH] Change
_set_fhto a_check_fhthat returns self._fh (#1823) @fkiraly[ENH] Generalize splitters to accept timedeltas (equally spaced) (#1758) @khrapovs
Time series classification#
[ENH] New transformation based pipeline classifiers (#1721) @MatthewMiddlehurst
[ENH]
FreshPRINCEparams moved from _config into estimator (#1944) @fkiraly[ENH] user selected return for classification problems data loading functions (#1799) @tonybagnall
[ENH] TSC refactor:
composesub-module (#1852) @tonybagnall[ENH] TSC refactor: TSC column ensemble (#1859) @tonybagnall
[ENH] TSC refactor: TSF, RSF (#1851) @tonybagnall
[ENH] Replace C extensions and Cython with numba based distance calculations (#1761, #1847, #1932, #1927) @TonyBagnall.
[ENH] introduce msm distance and adapt KNN classifier to use it (#1926) @tonybagnall
[ENH] Efficiency improvements for HC2 interval_speedup (#1754) @MatthewMiddlehurst
[ENH] classifier tests: removes replace_X_y, comments, and add contracting tests (#1800) @MatthewMiddlehurst
Transformations#
Testing module#
[ENH] split tests in series_as_features into classification and regression (#1959) @tonybagnall
[ENH] Testing for metadata returns of
check_is_mtype(#1748) @fkiraly[ENH] Extended deep_equals, with precise indication of why equality fails (#1844) @fkiraly
[ENH] test for
test_create_test_instances_and_namesfixture generation method (#1829) @fkiraly[ENH] Utils module housekeeping varia utils-housekeeping (#1820) @fkiraly
[ENH] Extend testing framework to test multiple instance fixtures per estimator (#1732) @fkiraly
Governance#
new CC composition, updated codeowners (#1796)
updated core developer list (#1841) @sumit-158
Maintenance#
[MNT] Switch the extra dependency from fbprophet to prophet (#1958) @lmmentel
[MNT] Updated code dependency version, i.e. numpy and statsmodels to reduce dependency conflicts (#1921) @lmmentel
[MNT] Move all the CI/CD workflows over to github actions and drop azure pipelines and appveyor (#1620, #1920) @lmemntel
[MNT] Correct the bash error propagation for running notebook examples (#1816) @lmmentel
Fixed#
[DOC] Fixed a typo in transformer extension template (#1901) @rakshitha123
[DOC] Fix typo in Setting up a development environment section (#1872) @shubhamkarande13
[BUG] Fix incorrect “uses X” tag for ARIMA and
TrendForecaster(#1895) @ngupta23[BUG] fix error when concatenating train and test (#1892) @tonybagnall
[BUG] Knn bugfix to allow GridsearchCV and usage with column ensemble (#1903) @tonybagnall
[BUG] Fixes various bugs in DrCIF, STSF, MUSE, Catch22 (#1869) @MatthewMiddlehurst
[BUG] fixing mixup of internal variables in detrender (#1863) @fkiraly
[BUG] transformer base class changes and bugfixes (#1855) @fkiraly
[BUG] fixed erroneous index coercion in
convert_align_to_align_loc(#1911) @fkiraly[BUG] bugfixes for various bugs discovered in scenario testing (#1846) @fkiraly
[BUG] 1523 fixing
ForecastHorizon.to_absolutefor freqs with anchorings (#1830) @eenticott-shell[BUG] remove duplicated input checks from
BaseClassifier.score(#1813) @fkiraly[BUG] fixed mtype return field in
check_is_scitype(#1805) @fkiraly[BUG] fix fh -> self.fh in
predict_intervalandpredict_quantiles(#1775) @fkiraly[BUG] fix incorrect docstrings and resolving confusion unequal length/spaced in panel metadata inference (#1768) @fkiraly
[BUG] hotfix for bug when passing multivariate y to boxcox transformer (#1724) @fkiraly
[BUG] fixes CIF breaking with CIT, added preventative test (#1709) @MatthewMiddlehurst
[BUG] Correct the examples/catch22.ipynb call to
transform_single_feature(#1793) @lmmentel[BUG] Fixes prophet bug concerning the internal change of exogenous X (#1711) @kejsitake
[BUG] Fix DeprecationWarning of
pd.Seriesin sktime/utils/tests/test_datetime.py:21 (#1743) @khrapovs[BUG] bugfixes in
BaseClassifier, updated base class docstrings (#1804) @fkiraly
Contributors#
@aiwalter, @amrith-shell, @Aparna-Sakshi, @AreloTanoh, @chrisholder, @eenticott-shell, @fkiraly, @k1m190r, @kejsitake, @khrapovs, @lmmentel, @ltsaprounis, @MatthewMiddlehurst, @MrPr3ntice, @mloning, @ngupta23, @rakshitha123, @RNKuhns, @shubhamkarande13, @sumit-158, @TonyBagnall,
[0.9.0] - 2021-12-08#
Highlights#
frequently requested: AutoARIMA
get_fitted_paramsaccess for fitted order and seasonal order (#1641) @AngelPoneNumba distance module - efficient time series distances (#1574) @chrisholder
Transformers base interface refactor - default vectorization to panel data @fkiraly
new experimental module: Time series alignment, dtw-python interface (#1264) @fkiraly
Core interface changes#
Data types, checks, conversions#
Time series classification#
time series classifiers now accept 2D
np.ndarrayby conversion to 3D rather than throwing exception (#1604) @TonyBagnall
Transformations#
Base interface refactor (#1365, #1663, #1706):
fit,transform,fit_transformnow accept bothSeriesandPanelas argumentif
Panelis passed to a series transformer, it is applied to all instancesall transformers now use X as their first argument, y as their second argument. This is enforced by the new base interface.
This was inconsistent previously between types of transformers: the series-to-series transformers were using Z as first argument, X as second argument.
Z (former first argument) aliases X until 0.10.0 in series transformers, will then be deprecated
X (former second argument) was not used in those transformers where it changed to y
see new transformer extension template
these changes will gradually be rolled out to all transformers through 0.9.X versions
New deprecations for 0.10.0#
Data types, checks, conversions#
Time series classification#
MrSEQL time series classifier (#1548) @TonyBagnall
Transformations#
series transformers will no longer accept a Z argument - first argument Z replaced by X (#1365)
Added#
Documentation#
[DOC] Windows installation guide for sktime development with Anaconda and PyCharm by (#1640) @jasonlines
[DOC] Update installation.rst (#1636) @MrPr3ntice
[DOC] additions to forecaster extension template (#1535) @fkiraly
[DOC] Add toggle button to make examples easy to copy (#1572) @RNKuhns
[DOC] Update docs from roadmap planning sessions (#1527) @mloning
[DOC] STLTransformer docstring and attribute (#1611) @aiwalter
[DOC] typos in user documentation (#1671) @marcio55afr
[DOC] Add links to estimator overview to README (#1691) @mloning
[DOC] Update Time series forest regression docstring (#800) @thayeylolu
[DOC] fix docstring in Feature Union (#1470) @AreloTanoh
[DOC] Added new contributors (#1602 #1559) @Carlosbogo @freddyaboulton
Data types, checks, conversions#
Forecasting#
[ENH] Auto-ETS checks models to select from based on non-negativity of data (#1615) @chernika158
[DOC] meta-tuning examples for docstring of
ForecastingGridSearchCV(#1656) @aiwalter
Time series alignment#
Time series classification#
[ENH] Classifier test speed ups (#1599) @MatthewMiddlehurst
[ENH] Experiments tidy-up by (#1619) @TonyBagnall
[ENH] MiniRocket and MultiRocket as options for RocketClassifier (#1637) @MatthewMiddlehurst
[ENH] Updated classification base class typing (#1633) @chrisholder
TSC refactor: Interval based classification package(#1583) @MatthewMiddlehurst
TSC refactor: Distance based classification package (#1584) @MatthewMiddlehurst
TSC refactor: Feature based classification package (#1545) @MatthewMiddlehurst
Time series distances#
[ENH] Numba distance module - efficient time series distances (#1574) @chrisholder
[ENH] Distance metric refactor (#1664) @chrisholder
Governance#
Maintenance#
Fixed#
Estimator registry#
Forecasting#
[BUG] Facebook prophet side effects on exogenous data X (#1711) @kejsitake
[BUG] fixing bug for
_split, accidental removal of pandas.Index support (#1582) @fkiraly[BUG] Fix
convertand_splitfor Numpy 1D input (#1650) @fkiraly[BUG] issue with update_y_X when we refit forecaster by (#1595) @ltsaprounis
Performance metrics, evaluation#
Time series alignment#
Time series classification#
[BUG] Fixes #1234 (#1600) @Carlosbogo
[BUG] load from UCR fix (#1610) @TonyBagnall
[BUG] TimeSeriesForest Classifier Fix (#1588) @OliverMatthews
[BUG] fix parameter mismatch in ShapeDTW by (#1638) @TonyBagnall
Transformations#
Maintenance#
Contributors#
@aiwalter, @AngelPone, @AreloTanoh, @Carlosbogo, @chernika158, @chrisholder, @fstinner, @fkiraly, @freddyaboulton, @kejsitake, @lmmentel, @ltsaprounis, @MatthewMiddlehurst, @marcio55afr, @MrPr3ntice, @mloning, @OliverMatthews, @RNKuhns, @thayeylolu, @TonyBagnall,
Full changelog#
[0.8.1] - 2021-10-28#
Highlights#
main forecasting pipelines now support multivariate forecasting - tuning, pipelines, imputers (#1376) @aiwalter
collection of new transformers - date-time dummies, statistical summaries, STL transform, transformer from function (#1329 #1356 #1463 #1498) @boukepostma @eyalshafran @danbartl @RNKuhns
new interface points for probabilistic forecasting,
predict_intervalandpredict_quantiles(#1421) @SveaMeyer13experimental interface for time series segmentation (#1352) @patrickzib
New deprecations for 0.10.0#
Forecasting#
current prediction intervals interface in
predictviareturn_pred_intwill be deprecated and replaced by the new interface pointspredict_intervalandpredict_quantiles
Core interface changes#
Forecasting#
new interface points for probabilistic forecasting,
predict_intervalandpredict_quantiles(#1421) @SveaMeyer13changed forecasting
univariate-onlytag toignores-exogeneous-X(#1358) @fkiraly
Added#
BaseEstimator/BaseObject#
Forecasting#
statsmodels VAR interface (#1083, #1491) @thayeylolu @fkiraly
multivariate
TransformedTargetForecaster,ForecastingPipeline,BaseGridSearch,MultiplexForecaster(#1376) @aiwalterprediction intervals for statsmodels interface
_StatsModelsAdapter(#1489) @eyalshafrangeometric mean based forecasting metrics (#1472, #837) @RNKuhns
new multivariate forecasting dataset, statsmodels macroeconomic data (#1553) @aiwalter @SinghShreya05
Time series classification#
HIVE-COTE 2.0 Classifier (#1504) @MatthewMiddlehurst
Auto-generate d classifier capabilities summary #997 (#1229) @BINAYKUMAR943
Transformers#
date-time dummy feature transformer
DateTimeFeatures(#1356) @danbartlstatistical summary transformer,
SummaryTransformer(#1329) @RNKuhnstransformer factory from function,
FunctionTransformer(#1498) @boukepostmaSTL transformation,
STLTransformer(#1463) @eyalshafran
Annotation: change-points, segmentation#
Clasp for time series segmentation (CIKM’21 publication) (#1352) @patrickzib
Documentation#
Governance#
Governance change: clearer timelines and conditions for decision making (#1110) @fkiraly
@SveaMeyer13, @GuzalBulatova, and @freddyaboulton joined core devs (#1444)
Testing framework#
Fixed#
Refactor TSC: base class (#1517) @TonyBagnall
Refactor TSC: Hybrid/kernel based classification package (#1557) @MatthewMiddlehurst
Refactor TSC: Dictionary based classification package (#1544) @MatthewMiddlehurst
Refactor TSC: Time series classifiers refactor/Shape_DTW (#1554) @Piyush1729
Refactor TSC:
_museclassifier (#1359) @BINAYKUMAR943Refactor TSC:
ShapeletTransformClassifier, documentation for HC2 (#1490) @MatthewMiddlehurstRefactor TSC: catch22 (#1487) @RavenRudi
Refactor TSC: tsfresh classifier (#1473) @kejsitake
Refactor forecasting: forecaster x/y checks (#1436) @fkiraly
[MNT] Fix appveyor failure (#1541) @freddyaboulton
[MNT] Added pre-commit hook to sort imports (#1465) @aiwalter
[MNT] add
max_requirements, bound statsmodels (#1479) @fkiraly[BUG] incorrect/missing weighted geometric mean in forecasting ensemble (#1370) @fkiraly
[BUG] #1469: stripping names of index X and y (#1493) @boukepostma
[BUG] W-XXX frequency bug from #866 (#1409) @xiaobenbenecho
[BUG] Pandas.NA for unpredictable insample forecasts in AutoARIMA (#1442) @IlyasMoutawwakil
[BUG] Refactor sktime/…/_panels/_examples.py for tsai compatibility (#1453) @bobbys-dev
[BUG] model_selection/split passed the entire DataFrame as index if DataFrame was provided (#1456) @fkiraly
[BUG] multivariate
NaiveForecasterwas missingupdate(#1457) @fkiraly[DOC] docstring fixes in
_proximity_forest.py(#1531) @TonyBagnall[DOC] fixes to landing page links (#1429) @Aparna-Sakshi
[DOC] Add DataChef blog post to community showcase (#1464) @myprogrammerpersonality
[DOC] Fixes broken links/estimator overview (#1445) @afzal442
[DOC] Remove license info from docstrings (#1437) @ronnie-llamado
All contributors: @Aparna-Sakshi, @BINAYKUMAR943, @IlyasMoutawwakil, @MatthewMiddlehurst, @Piyush1729, @RNKuhns, @RavenRudi, @SveaMeyer13, @TonyBagnall, @afzal442, @aiwalter, @bobbys-dev, @boukepostma, @danbartl, @eyalshafran, @fkiraly, @freddyaboulton, @kejsitake, @mloning, @myprogrammerpersonality, @patrickzib, @ronnie-llamado, @xiaobenbenecho, @SinghShreya05, and @yairbeer
[0.8.0] - 2021-09-17#
Highlights#
Python 3.9 support for linux/osx (#1255) @freddyaboulton
conda-forgemetapackage for installing sktime with all extras @freddyaboultonframework support for multivariate forecasting (#980 #1195 #1286 #1301 #1306 #1311 #1401 #1410) @aiwalter @fkiraly @thayeylolu
consolidated lookup of estimators and tags using
registry.all_estimatorsandregistry.all_tags(#1196) @fkiraly[DOC] major overhaul of
sktime’s online documentation[DOC] searchable, auto-updating estimators register in online documentation (#930 #1138) @afzal442 @mloning
[MNT] working Binder in-browser notebook showcase (#1266) @corvusrabus
[DOC] tutorial notebook for in-memory data format conventions, validation, and conversion (#1232) @fkiraly
easy conversion functionality for estimator inputs, series and panel data (#1061 #1187 #1201 #1225) @fkiraly
consolidated tags system, dynamic tagging (#1091 #1134) @fkiraly
Core interface changes#
BaseEstimator/BaseObject#
estimator (class and object) capabilities are inspectable by
get_tagandget_tagsinterfacelist all tags applying to an estimator type by
registry/all_tagslist all estimators of a specific type, with certain tags, by
registry/all_estimators
In-memory data types#
introduction of m(achine)types and scitypes for defining in-memory format conventions across all modules, see in-memory data types tutorial
loose conversion methods now in
_convertfiles indatatypeswill no longer be publicly accessible in 0.10.0
Forecasting#
Forecasters can now be passed
pd.DataFrame,pd.Series,np.ndarrayasXory, and return forecasts of the same type as passed forysktimenow supports multivariate forecasters, with all core interface methods returning sensible return types in that casewhether forecaster can deal with multivariate series can be inspected via
get_tag("scitype:y"), which can return"univariate","multivariate", or"both"further tags have been introduced, see
registry/all_tags
Time series classification#
tags have been introduced, see
registry/all_tags
Added#
Forecasting#
Multivariate
ColumnEnsembleForecaster(#1082 #1349) @fkiraly @GuzalBulatovaUnobservedComponentsstatsmodelswrapper (#1394) @juanitorduzTrendForecaster(usingsklearnregressor for value vs time index) (#1209) @tensorflow-as-tfProphet custom seasonalities (#1378) @IlyasMoutawwakil
Extend aggregation functionality in
EnsembleForecaster(#1190) @GuzalBulatovaAdded
n_best_forecasterssummary to grid searches (#1139) @aiwalterForecastingHorizonsupporting more input types,is_relativedetection on construction from index type (#1169) @fkiraly
Time series classification#
Rotation forest time series classifier (#1391) @MatthewMiddlehurst
Transform classifiers (#1180) @MatthewMiddlehurst
New Proximity forest version (#733) @moradabaz
Enhancement on RISE (#975) @whackteachers
Transformers#
Benchmarking and evaluation#
Critical Difference Diagrams (#1277) @SveaMeyer13
Classification experiments (#1260) @TonyBagnall
Clustering experiments (#1221) @TonyBagnall
change to classification experiments (#1137) @TonyBagnall
Documentation#
Testing framework#
Fixed#
Refactor TSC: DrCIF and CIF to new interface (#1269) @MatthewMiddlehurst
Refactor TSC: TDE additions and documentation for HC2 (#1357) @MatthewMiddlehurst
Refactor TSC: Arsenal additions and documentation for HC2 (#1305) @MatthewMiddlehurst
Refactor TSC: _cboss (#1295) @BINAYKUMAR943
Refactor TSC: rocket classifier (#1239) @victordremov
Refactor TSC: Dictionary based classifiers (#1084) @MatthewMiddlehurst
Refactor tests: estimator test parameters with the estimator (#1361) @Aparna-Sakshi
Update _data_io.py (#1308) @TonyBagnall
Data io (#1248) @TonyBagnall
[BUG]
NaiveForecasterbehaviour fix for trailing NaN values (#1130) @Flix6x[BUG] Fix
all_estimatorswhen extras are missing. (#1259) @xloem[BUG] Contract test fix (#1392) @MatthewMiddlehurst
[BUG] Data writing updates and JapaneseVowels dataset fix (#1278) @MatthewMiddlehurst
[BUG] Fixed ESTIMATOR_TEST_PARAMS reference in
test_all_estimators(#1406) @fkiraly[BUG] remove incorrect exogeneous and return_pred_int errors (#1368) @fkiraly
[BUG] - broken binder and test_examples check (#1343) @fkiraly
[BUG] Fix minor silent issues in
TransformedTargetForecaster(#845) @aiwalter[BUG] Troubleshooting for C compiler after pytest failed (#1262) @tensorflow-as-tf
[BUG] bugfix in tutorial documentation of univariate time series classification. (#1140) @BINAYKUMAR943
[BUG] bugfix - convertIO broken references to np.ndarray (#1191) @fkiraly
[BUG] STSF test fix (#1170) @MatthewMiddlehurst
[BUG]
set_tagscall inBaseObject.clone_tagsused incorrect signature (#1179) @fkiraly[DOC] Update transformer docstrings Boss (#1320) @thayeylolu
[DOC] Updated docstring of exp_smoothing.py (#1339) @mathco-wf
[DOC] updated the link in CONTRIBUTING.md (#1428) @Aparna-Sakshi
[DOC] Correct typo in contributing guidelines (#1398) @juanitorduz
[DOC] Fix minor typo in README (#1416) @justinshenk
[DOC] Fixed a typo in citation page (#1310) @AreloTanoh
[DOC] EnsembleForecaster and AutoEnsembleForecaster docstring example (#1382) @aiwalter
[DOC] Docstring improvements for bats, tbats, arima, croston (#1309) @Lovkush-A
[DOC] Update detrend module docstrings (#1335) @SveaMeyer13
[DOC] updated extension templates - object tags (#1340) @fkiraly
[DOC] Update ThetaLinesTransformer’s docstring (#1312) @GuzalBulatova
[DOC] Update ColumnwiseTransformer and TabularToSeriesAdaptor docstrings (#1322) @GuzalBulatova
[DOC] Description and link to cosine added (#1326) @AreloTanoh
[DOC] naive foreasting docstring edits (#1333) @AreloTanoh
[DOC] Typo in transformations.rst fixed (#1324) @AreloTanoh
[DOC] Add content to documentation guide for use in docsprint (#1297) @RNKuhns
[DOC] Added slack and google calendar to README (#1283) @aiwalter
[DOC] docstring fix for distances/series extension templates (#1256) @fkiraly
[DOC] adding binder link to readme (landing page) (#1282) @fkiraly
[DOC] add conda-forge max dependency recipe to installation and readme (#1226) @fkiraly
[DOC] Adding table of content in the forecasting tutorial (#1200) @bilal-196
[DOC] Complete docstring of EnsembleForecaster (#1165) @GuzalBulatova
[DOC] Minor update to See Also of BOSS Docstrings (#1172) @RNKuhns
[DOC] Refine the Docstrings for BOSS Classifiers (#1166) @RNKuhns
[DOC] add examples in docstrings in classification (#1164) @ltoniazzi
[DOC] adding example in docstring of KNeighborsTimeSeriesClassifier (#1155) @ltoniazzi
[MNT] removing tests for data downloader dependent on third party website, change in test dataset for test_time_series_neighbors (#1258) @TonyBagnall
[MNT] Format setup files (#1236) @TonyBagnall
All contributors: @Aparna-Sakshi, @AreloTanoh, @BINAYKUMAR943, @Flix6x, @GuzalBulatova, @IlyasMoutawwakil, @Lovkush-A, @MatthewMiddlehurst, @RNKuhns, @SveaMeyer13, @TonyBagnall, @afzal442, @aiwalter, @bilal-196, @corvusrabus, @fkiraly, @freddyaboulton, @juanitorduz, @justinshenk, @ltoniazzi, @mathco-wf, @mloning, @moradabaz, @pul95, @tensorflow-as-tf, @thayeylolu, @victordremov, @whackteachers and @xloem
[0.7.0] - 2021-07-12#
Added#
new module (experimental): Time Series Clustering (#1049) @TonyBagnall
new module (experimental): Pairwise transformers, kernels/distances on tabular data and panel data - base class, examples, extension templates (#1071) @fkiraly @chrisholder
new module (experimental): Series annotation and PyOD adapter (#1021) @fkiraly @satya-pattnaik
Clustering extension templates, docstrings & get_fitted_params (#1100) @fkiraly
New Classifier: Implementation of signature based methods. (#714) @jambo6
New Forecaster: Croston’s method (#730) @Riyabelle25
New Forecaster: ForecastingPipeline for pipelining with exog data (#967) @aiwalter
New Transformer: Multivariate Detrending (#1042) @SveaMeyer13
New Transformer: ThetaLines transformer (#923) @GuzalBulatova
Feature/information criteria get_fitted_params (#942) @ltsaprounis
Add plot_correlations() to plot series and acf/pacf (#850) @RNKuhns
Docs: Create add_dataset.rst (#970) @Riyabelle25
adding fkiraly as codeowner for forecasting base classes (#989) @fkiraly
added mloning and aiwalter as forecasting/base code owners (#1108) @fkiraly
Changed#
Forecasting refactor: base class refactor and extension template (#912) @fkiraly
Forecasting refactor: base/template docstring fixes, added fit_predict method (#1109) @fkiraly
Forecasters refactor: BaseGridSearch, ForecastingGridSearchCV, ForecastingRandomizedSearchCV (#1034) @GuzalBulatova
Forecasting refactor: polynomial trend forecaster (#1003) @thayeylolu
Forecasting refactor: Stacking, Multiplexer, Ensembler and TransformedTarget Forecasters (#977) @thayeylolu
Forecasting refactor: statsmodels and theta forecaster (#1029) @thayeylolu
Forecasting refactor: reducer (#1031) @Lovkush-A
Forecasting refactor: ensembler, online-ensembler-forecaster and descendants (#1015) @thayeylolu
Forecasting refactor: TbatAdapter (#1017) @thayeylolu
Forecasting refactor: PmdArimaAdapter (#1016) @thayeylolu
Forecasting refactor: Prophet (#1005) @thayeylolu
Forecasting refactor: CrystallBall Forecaster (#1004) @thayeylolu
Forecasting refactor: default tags in BaseForecaster; added some new tags (#1013) @fkiraly
Forecasting refactor: removing _SktimeForecaster and horizon mixins (#1088) @fkiraly
Added tuning tutorial to forecasting example notebook - fkiraly suggestions on top of #1047 (#1053) @fkiraly
Classification: Kernel based refactor (#875) @MatthewMiddlehurst
Classification: catch22 Remake (#864) @MatthewMiddlehurst
Forecasting: Remove step_length hyper-parameter from reduction classes (#900) @mloning
Transformers: Make OptionalPassthrough to support multivariate input (#1112) @aiwalter
Transformers: Improvement to Multivariate-Detrending (#1077) @SveaMeyer13
Update plot_series to handle pd.Int64 and pd.Range index uniformly (#892) @Dbhasin1
Including floating numbers as a window length (#827) @thayeylolu
update docs on loading data (#885) @SveaMeyer13
[DOC] Updated docstrings to inform that methods accept ForecastingHorizon (#872) @julramos
Fixed#
Fix use of seasonal periodicity in naive model with mean strategy (from PR #917) (#1124) @mloning
Bugfix - forecasters should use internal interface _all_tags for self-inspection, not _has_tag (#1068) @fkiraly
bugfix: Prophet adapter fails to clone after setting parameters (#911) @Yard1
Fix seeding issue in Minirocket Classifier (#1094) @Lovkush-A
Fix minor typos in docstrings (#889) @GuzalBulatova
Add limits.h to ensure pip install on certain OS’s (#915) @tombh
Fix side effect on input for Imputer and HampelFilter (#1089) @aiwalter
BaseCluster class issues resolved (#1075) @chrisholder
Cleanup metric docstrings and fix bug in _RelativeLossMixin (#999) @RNKuhns
minor clarifications in forecasting extension template preamble (#1069) @fkiraly
Fix fh in imputer method based on in-sample forecasts (#861) @julramos
Arsenal fix, extended capabilities and HC1 unit tests (#902) @MatthewMiddlehurst
minor bugfix - setting _is_fitted to False before input checks in forecasters (#941) @fkiraly
Properly process random_state when fitting Time Series Forest ensemble in parallel (#819) @kachayev
bump nbqa (#998) @MarcoGorelli
datetime: Construct Timedelta from parsed pandas frequency (#873) @ckastner
All contributors: @Dbhasin1, @GuzalBulatova, @Lovkush-A, @MarcoGorelli, @MatthewMiddlehurst, @RNKuhns, @Riyabelle25, @SveaMeyer13, @TonyBagnall, @Yard1, @aiwalter, @chrisholder, @ckastner, @fkiraly, @jambo6, @julramos, @kachayev, @ltsaprounis, @mloning, @thayeylolu and @tombh
[0.6.1] - 2021-05-14#
Fixed#
Changed#
ThetaForecaster now works with initial_level (#769) @yashlamba
Use joblib to parallelize ensemble fitting for Rocket classifier (#796) @kachayev
Undo pmdarima hotfix and avoid pmdarima 1.8.1 (#831) @aaronreidsmith
Added#
Added Guerrero method for lambda estimation to BoxCoxTransformer (#778) (#791) @GuzalBulatova
Implementation of DirRec reduction strategy (#779) @luiszugasti
Added cutoff to BaseGridSearch to use any grid search inside evaluate… (#825) @aiwalter
Added pd.DataFrame transformation for Imputer and HampelFilter (#830) @aiwalter
Added skip-inverse-transform tag for Imputer and HampelFilter (#788) @aiwalter
Added a reference to alibi-detect (#815) @satya-pattnaik
All contributors: @GuzalBulatova, @RNKuhns, @aaronreidsmith, @aiwalter, @kachayev, @ltsaprounis, @luiszugasti, @mloning, @satya-pattnaik and @yashlamba
[0.6.0] - 2021-04-15#
Fixed#
Fix counting for Github’s automatic language discovery (#812) @xuyxu
Fix counting for Github’s automatic language discovery (#811) @xuyxu
SettingWithCopyWarning in Prophet with exogenous data (#735) @jschemm
Correct docstrings for check_X and related functions (#701) @Lovkush-A
Fixed bugs mentioned in #694 (#697) @AidenRushbrooke
fix typo in CONTRIBUTING.md (#688) @luiszugasti
HIVE-COTE 1.0 fix (#678) @MatthewMiddlehurst
Changed#
Modify tests for forecasting reductions (#756) @Lovkush-A
Upgrade nbqa (#794) @MarcoGorelli
Enhance forecasting model selection/evaluation (#739) @mloning
master to main conversion in docs folder closes #644 (#667) @ayan-biswas0412
remove MSM from unit tests for now (#698) @TonyBagnall
update dataset names (#676) @TonyBagnall
Added#
Add support for exogenous variables to forecasting reduction (#757) @mloning
Added the agg argument to EnsembleForecaster (#774) @Ifeanyi30
Multiplexer forecaster (#715) @koralturkk
Upload source tarball to PyPI during releases (#749) @dsherry
Refactor TSF classifier into TSF regressor (#693) @luiszugasti
changes to contributing.md to include directions to installation (#695) @kanand77
Knn unit tests (#705) @TonyBagnall
Knn transpose fix (#689) @TonyBagnall
Multioutput reduction strategy for forecasting (#659) @Lovkush-A
All contributors: @AidenRushbrooke, @Ifeanyi30, @Lovkush-A, @MarcoGorelli, @MatthewMiddlehurst, @TonyBagnall, @afzal442, @aiwalter, @ayan-biswas0412, @dsherry, @jschemm, @kanand77, @koralturkk, @luiszugasti, @mloning, @pabworks and @xuyxu
[0.5.3] - 2021-02-06#
Fixed#
Address Bug #640 (#642) @patrickzib
Ed knn (#638) @TonyBagnall
Changed#
Benchmarking issue141 (#492) @ViktorKaz
Catch22 Refactor & Multithreading (#615) @MatthewMiddlehurst
Added#
Create new factory method for forecasting via reduction (#635) @Lovkush-A
Add expanding window splitter (#627) @koralturkk
Forecasting User Guide (#595) @Lovkush-A
Add data processing functionality to convert between data formats (#553) @RNKuhns
Add basic parallel support for ElasticEnsemble (#546) @xuyxu
All contributors: @Lovkush-A, @MatthewMiddlehurst, @RNKuhns, @TonyBagnall, @ViktorKaz, @aiwalter, @goastler, @koralturkk, @mloning, @pabworks, @patrickzib and @xuyxu
[0.5.2] - 2021-01-13#
Fixed#
Fixes _fit(X) in KNN (#610) @TonyBagnall
UEA TSC module improvements 2 (#599) @TonyBagnall
Fix sktime.classification.frequency_based not found error (#606) @Hephaest
UEA TSC module improvements 1 (#579) @TonyBagnall
Relax numba pinning (#593) @dhirschfeld
All contributors: @Hephaest, @MatthewMiddlehurst, @TonyBagnall, @aiwalter and @dhirschfeld
[0.5.1] - 2020-12-29#
Added#
Add ARIMA (#559) @HYang1996
Add example notebook Window Splitters (#555) @juanitorduz
Add SlidingWindowSplitter visualization on doctrings (#554) @juanitorduz
Fixed#
Pin pandas version to fix pandas-related AutoETS error on Linux (#581) @mloning
Fixed default argument in docstring in SlidingWindowSplitter (#556) @ngupta23
All contributors: @HYang1996, @TonyBagnall, @afzal442, @aiwalter, @angus924, @juanitorduz, @mloning and @ngupta23
[0.5.0] - 2020-12-19#
Added#
Add tests for forecasting with exogenous variables (#547) @mloning
Add HCrystalBall wrapper (#485) @MichalChromcak
Added matrix profile using stumpy (#471) @utsavcoding
Add GitHub workflow for building and testing on macOS (#505) @mloning
Implement the feature_importances_ property for RISE (#497) @AaronX121
Add scikit-fda to the list of related software (#495) @vnmabus
Add parallelization for RandomIntervalSpectralForest (#482) @AaronX121
CI run black formatter on notebooks as well as Python scripts (#437) @MarcoGorelli
Implementation of catch22 transformer, CIF classifier and dictionary based clean-up (#453) @MatthewMiddlehurst
Added write dataset to ts file functionality (#438) @whackteachers
Added ability to load from csv containing long-formatted data (#442) @AidenRushbrooke
Changed#
[Doc]Updated load_data.py (#496) @Afzal-Ind
Update forecasting.py (#487) @raishubham1
update basic motion description (#475) @vollmersj
[DOC] Update docs in benchmarking/data.py (#489) @Afzal-Ind
Feature & Performance improvements of SFA/WEASEL (#457) @patrickzib
Fixed#
Fix plot-series (#533) @gracewgao
added mape_loss and cosmetic fixes to notebooks (removed kernel) (#500) @tch
[DOC] Fix broken docstrings of RandomIntervalSpectralForest (#473) @AaronX121
Add back missing bibtex reference to classifiers (#468) @whackteachers
Bump pre-commit versions, run again on notebooks (#469) @MarcoGorelli
Fix bug in AutoETS (#445) @HYang1996
Removed#
All contributors: @AaronX121, @Afzal-Ind, @AidenRushbrooke, @HYang1996, @MarcoGorelli, @MatthewMiddlehurst, @MichalChromcak, @TonyBagnall, @aiwalter, @bmurdata, @davidbp, @gracewgao, @magittan, @mloning, @ngupta23, @patrickzib, @raishubham1, @tch, @utsavcoding, @vnmabus, @vollmersj and @whackteachers
[0.4.3] - 2020-10-20#
Added#
Support for downloading dataset from UCR UEA time series classification data set repository (#430) @Emiliathewolf
Univariate time series regression example to TSFresh notebook (#428) @evanmiller29
Parallelized TimeSeriesForest using joblib. (#408) @kkoziara
Add date-time support for forecasting framework (#392) @mloning
Changed#
Performance improvements of dictionary classifiers (#398) @patrickzib
Fixed#
Fix links in Readthedocs and Binder launch button (#416) @mloning
Resolves #325 ModuleNotFoundError for soft dependencies (#410) @alwinw
All contributors: @Emiliathewolf, @alwinw, @evanmiller29, @kkoziara, @krumeto, @mloning and @patrickzib
[0.4.2] - 2020-10-01#
Added#
ETSModel with auto-fitting capability (#393) @HYang1996
WEASEL classifier (#391) @patrickzib
Full support for exogenous data in forecasting framework (#382) @mloning, (#380) @mloning
Multivariate dataset for US consumption over time (#385) @SebasKoel
Fixed#
Changed#
Move documentation to ReadTheDocs with support for versioned documentation (#395) @mloning
Refactored SFA implementation (additional features and speed improvements) (#389) @patrickzib
Move prediction interval API to base classes in forecasting framework (#387) @big-o
All contributors: @HYang1996, @SebasKoel, @fkiraly, @akanz1, @alwinw, @big-o, @brettkoonce, @mloning, @patrickzib
[0.4.1] - 2020-07-09#
Added#
New sktime logo @mloning
TemporalDictionaryEnsemble (#292) @MatthewMiddlehurst
ShapeDTW (#287) @Multivin12
Updated sktime artwork (logo) @mloning
Example notebook with feature importance graph for time series forest (#319) @HYang1996
ACSF1 data set (#314) @BandaSaiTejaReddy
Data conversion function from 3d numpy array to nested pandas dataframe (#304) @vedazeren
Changed#
Replaced gunpoint dataset in tutorials, added OSULeaf dataset (#295) @marielledado
Updated macOS advanced install instructions (#306) (#308) @sophijka
Updated contributing guidelines (#301) @Ayushmaanseth
Fixed#
KNN compatibility with sklearn (#310) @Cheukting
All contributors: @Ayushmaanseth, @Mo-Saif, @Pangoraw, @marielledado, @mloning, @sophijka, @Cheukting, @MatthewMiddlehurst, @Multivin12, @ABostrom, @HYang1996, @BandaSaiTejaReddy, @vedazeren, @hiqbal2, @btrtts
[0.4.0] - 2020-06-05#
Added#
Forecasting framework, including: forecasting algorithms (forecasters), tools for composite model building (meta-forecasters), tuning and model evaluation
Consistent unit testing of all estimators
Consistent input checks
Enforced PEP8 linting via flake8
Changelog
Support for Python 3.8
Support for manylinux wheels
Changed#
Revised all estimators to comply with common interface and to ensure scikit-learn compatibility
Removed#
A few redundant classes for the series-as-features setting in favour of scikit-learn’s implementations:
PipelineandGridSearchCVHomogeneousColumnEnsembleClassifierin favour of more flexibleColumnEnsembleClassifier
Fixed#
Deprecation and future warnings from scikit-learn
User warnings from statsmodels