Changelog#
All notable changes to this project will be documented in this file. We keep track of changes in this file since v0.4.0. The format is based on Keep a Changelog and we adhere to Semantic Versioning. The source code for all releases is available on GitHub.
For upcoming changes and next releases, see our milestones. For our long-term plan, see our Roadmap.
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) @fkiralyprobabilisitic 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]
ExpandingWindowSplitterconstructorsklearnconformace 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) @NoaBenAmi @lielleravid
frequently requested algorithm: top-down reconciler based on forecast proportions (#2664) @ciaran-g
frequently requested algorithm: empirical and conformal prediction intervals after Stankeviciute et al, 2021 (#2542, #2706) @bethrice44 @fkiraly
Dependency changes#
new soft dependencies:
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) @NoaBenAmi[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, @NoaBenAmi, @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 compabitility 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) @NoaBenAmi[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 contsructor -> constructor in extension templates (#2348) @fkiraly
[DPC] fixed the issue with
'docs/source/developer_guide/testing_framework.rst'(#2335) @0saurabh0[DOC] Updated conda installation instructions (#2365) @RISHIKESHAVAN
[DOC] updated extension templates: link to docs and reference to check_estimator (#2303) @fkiraly
[DOC] 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, @NoaBenAmi, @RISHIKESHAVAN, @TNTran92
Version 0.11.0 – 2022-03-26#
Highlights#
multivariate forecasting, probabilistic forecasting section in forecasting tutorial (#2041) @kejsitake
hierarchical & global forecasting: forecaster and transformer interfaces are now compatible with hierarchical data, automatically vectorize over hierarchy levels (#2110, #2115, #2219) @danbartl @fkiraly
probabilistic forecasting:
predict_var(variance forecast) 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_hierachicalis 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 paraneter 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 worfklows 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#
https://github.com/alan-turing-institute/sktime/compare/v0.8.1…v0.9.0
[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 unpredictible 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 forcasting 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
Make update_params=true by default (#660) @pabworks
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
Feature ForecastingRandomizedSearchCV (#634) @pabworks
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
Docstrings for AutoARIMA (#307) @btrtts
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