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.18.1 - 2023-05-22#
Highlights#
sktime
now has a generic adapter class tostatsforecast
(#4539, #4629) @yarnabrinastatsforecast
AutoTheta
was added with direct interface using this, more to follow (#4539) @yarnabrinathe time series alignment module has been updated: extension template for aligners (#4613),
numba
based alignment paths are availableassktime
aligners (#4620) @fkiralythe forecasting benchmarking framework now allows to pass multiple metrics (#4586) @hazrulakmal
new time series classifiers: bagging, MACNN, RNN (#4185, #4533, #4636) @ArushikaBansal, @fkiraly, @achieveordie
Core interface changes#
Probability distributions#
specification of default sample sizes for Monte Carlo approximations now use the
scikit-base
config systema
quantile
method was added, which returns a table of quantiles in the same format asBaseForecaster.predict_quantiles
returne quantile forecastsa
ppf
method was added for returning quantiles
Enhancements#
Benchmarking#
[ENH]
statsforecast
AutoTheta
direct interface estimator (#4539) @yarnabrina[ENH] Clearer error message on fitting fail of
evaluate
(#4545) @fkiraly[ENH] remove warning for length 1 forecasting pipelines (#4546) @fkiraly
[ENH] simple tabular prediction reduction for forecasting (#4564) @fkiraly
[ENH] Extend forecasting benchmarking framework to multiple metrics, add test coverage (#4586) @hazrulakmal
Data types, checks, conversions#
Forecasting#
[ENH] rewrite of
_StatsForecastAdapter
in a generic way to support other models thanAutoARIMA
(#4629) @yarnabrina
Probability distributions#
Time series alignment#
Time series classification#
[ENH] SimpleRNN DL time series regressor, migrated from
sktime-dl
(#4185) @ArushikaBansal[ENH] move classification ensembles to
classification.ensembles
(#4532) @fkiraly[ENH] better documentation and test coverage for custom estimators and parameters in
DrCIF
(#4621) @Taise228[ENH] Add MACNN classifier and network (#4636) @achieveordie
Time series distances and kernels#
Transformations#
Testing framework#
Maintenance#
[MNT] add silent dependencies to core dependency set (#4551) @fkiraly
[MNT] bound
tensorflow-probability
to<0.20.0
(#4567) @fkiraly[MNT] changing
Union[int | float]
to float as per issue #4379 (#4575) @mdsaad2305[MNT] remove remaining soft dependency related module import warnings (#4554) @fkiraly
[MNT] remove remaining soft dependency related module import warnings (#4554) @fkiraly
[MNT] temporary bound
holidays
to avoid error inProphet
, later reverted (#4594, #4600) @fkiraly, @yarnabrina[MNT] remove
tsfresh
python version bounds from estimators (#4573) @fkiraly[MNT] excepting
FCNClassifier
from CI to prevent memouts until bugfix (#4616) @fkiraly[MNT] address
kulsinski
deprecation inscipy
(#4618) @fkiraly[MNT] remove forgotten
legacy_interface
reference fromcheck_is_scitype
docstring (#4630) @fkiraly
Documentation#
[DOC] improved docstrings in distances/kernels module (#4526) @fkiraly
[DOC] adds sktime internship link on the docs page (#4559) @fkiraly
[DOC] Improve Docstring for MAPE Metrics (#4563) @hazrulakmal
[DOC] additional glossary terms (#4556) @sanjayk0508
[DOC] fix warnings in make sphinx - language (
conf.py
) anddists_kernels.rst
wrong imports (#4593) @mdsaad2305[DOC] change
sktime
logos to vector graphicsvg
(#4606) @fkiraly[DOC] Remove white fill from
svg
andpng
sktime
logos (#4607) @fkiraly[DOC]
AutoETS
docstring - clarify conditional ignore of parameters dependent onauto
(#4597) @luca-miniati[DOC] correcting module path in
dists_kernels.rst
(#4625) @mdsaad2305[DOC] docstring for
SimpleRNNClassifier
(#4572) @wasup-yash[DOC] add examples for loading data from common tabular csv formats (#4612) @TonyZhangkz
[DOC] extension template for sequence aligners (#4613) @fkiraly
[DOC] fix minor issues in coding standards guide (#4619) @fkiraly
[DOC] remove forgotten
legacy_interface
reference fromcheck_is_scitype
docstring (#4630) @fkiraly[DOC] adding doctest guide to the testing documentation (#4634) @mdsaad2305
Fixes#
BaseObject, BaseEstimator#
Forecasting#
[BUG] corrected default logic for
_predict_interval
in case_predict_quantiles
is not implemented but_predict_proba
is (#4529) @fkiraly[BUG]
RecursiveReductionForecaster
pandas 2 fix (#4568) @fkiraly[BUG] in
_StatsModelsAdapter
, avoid passingexog
toget_prediction
ofstatsmodels
in_predict_interval
if parameter is not supported (#4589) @yarnabrina[BUG] fix incorrect sorting of
n_best_forecasters_
inBaseGridCV
if metric’slower_is_better
isFalse
(#4590) @hazrulakmal
Probability distributions#
Time series distances and kernels#
Time series classification#
[BUG] fix broken RNN classifier (#4531) @achieveordie
[BUG] fix bug from clash between
ABC
inheritance and RNNfit
override (#4527) @achieveordie @fkiraly
Time series regression#
[BUG] fix broken RNN regressor (#4531) @achieveordie
[BUG] fix bug from clash between
ABC
inheritance and RNNfit
override (#4527) @achieveordie @fkiraly
Transformations#
Contributors#
@achieveordie, @antonioramos1, @ArushikaBansal, @fkiraly, @hazrulakmal, @kbpk, @luca-miniati, @marrov, @mdsaad2305, @panozzaj, @sanjayk0508, @Taise228, @TonyZhangkz, @wasup-yash, @yarnabrina
Version 0.18.0 - 2023-04-28#
Maintenance release - scheduled numba
, scikit-base
, pandas
dependency updates,
scheduled deprecations.
For last non-maintenance content update, see 0.17.2.
Contents#
numba
has been changed to be a soft dependency. Allnumba
based estimators continue working unchanged, but require explicitnumba
installation.the base module of
sktime
has been factored out toscikit-base
, the abstract base layer forscikit-learn
like packages maintained bysktime
pandas 2
support continues in testing/experimental period until 0.18.last. Allsktime
native functionality ispandas 2
compatible, the transition period allows testing of deployments and custom extensions. See instructions below for upgrading dependenet code topandas 2
, or remaining onpandas 1
.scheduled deprecation of
tensorflow
based probability interface andVectorizedDF
methods.
Dependency changes#
numba
is no longer a core dependency, it has changed to soft dependencyscikit-base
is a new core dependency
Deprecations and removals#
Dependencies#
numba
has changed from core dependency to soft dependency insktime 0.18.0
. To ensure functioning of setups ofsktime
code dependent onnumba
based estimators going forward, ensure to installnumba
in the environment explicitly, or install theall_extras
soft dependency set which will continue to containnumba
. Besides this,numba
dependent estimators will function identically as before.sktime
’s base module has moved to a new core dependency,scikit-base
, fromsktime 0.18.0
. This will not impact functionality or imports directly fromsktime
, or any usage.tensorflow-probability
will cease to be a soft dependency from 0.19.0, as the only dependency locus (forecasters’ oldpredict_proba
return type) is being deprecated.
Data types, checks, conversions#
VectorizedDF.get_iloc_indexer
was removed. Developers and users should useiter
,__iter__
, orget_iter_indices
instead.
Forecasting#
forecasters’
predict_proba
now by default returns aBaseDistribution
. The oldtensorflow-probability
based return from pre-0.17.0 can still be obtained by setting the argumentlegacy_interface=False
inpredict_proba
. This is useful for handling deprecation.from 0.19.0, the
legacy_interface
argument will be removed frompredict_proba
, together with the option to returntensorflow-probability
based returns.
pandas 2
upgrade and testing#
support for
pandas 2
is being introduced gradually:experimental support period until 0.19.0 (all 0.17.X and 0.18.X versions)
full support from 0.19.0 (0.19.0, 0.19.X and onwards)
in the experimental period (0.17.1-0.18.last):
sktime
will have a dependency bound ofpandas<2.0.0
sktime
will aim to be compatible withpandas 2.0.X
as well aspandas 1, >=1.1.0
,sktime
can be run and tested withpandas 2.0.X
by force-installingpandas 2.0.X
estimators can be tested for
pandas 2
compatibility viacheck_estimator
under force-installedpandas 2.0.X
reports on compatibility issues are appreciated in #4426 (direct input or link from)
in the full support period (0.19.0-onwards):
sktime
requirements will allowpandas 2.0.X
and extend support withpandas
releasessktime
will aim to be compatible withpandas 2
(any version), as well aspandas 1, >=1.1.0
users choose their preferred
pandas
version by requirements on their downstream environmentthe bug and issue trackers should be used as normal
List of PR#
[MNT] 0.18.0 change action -
numba
as soft dependency (#3843) @fkiraly[MNT] ensure
predict_proba
calls inmlflow
forecasting interface explicitly calllegacy_interface
(#4514) @fkiraly[MNT]
skbase
refactor - part 1:BaseObject
and package dependencies (#3151) @fkiraly[MNT]
skbase
refactor - part 2:all_estimators
lookup (#3777) @fkiraly[ENH]
quantile
method for distributions, default implementation of forecasterpredict_quantiles
ifpredict_proba
is present (#4513) @fkiraly[ENH] add test for
all_estimators
tag filter (#4512) @fkiraly
Version 0.17.2 - 2023-04-24#
Highlights#
the transformers and pipelines tutorial from pydata global 2022 is now available in
sktime
, see examples (#4381) @dashapetrprobabilistic prediction functionality for
SARIMAX
(#4439) @yarnabrinaInceptionTime
classifier fromsktime-dl
migrated (#3003) @tobiasweedeSplitterBootstrapTransformer
for booststrapping based on any splitter (#4455) @fkiralyIxToX
transformer that creates features from time index or hierarchy label (#4416) @fkiralymany bugfixes to probabilistic forecasting interfaces -
BaggingForecaster
,BATS
,TBATS
,DynamicFactor
,VECM
Core interface changes#
Forecasting#
all forecasters (
Baseforecaster
descendants) now have the following new tags:capability:insample
, boolean, indicating whether the classifier can make in-sample forecasts.capability:pred_int:insample
, boolean, indicating whether the classifier can make probabilistic in-sample forecasts, e.g., prediction intervals in-sample.
all forecasters are now tested for interface conformance for interval forecasts, in-sample (based on the above tags) and out-of-sample, via
check_estimator
Time series classification#
all time series classifiers (
BaseClassifier
descendants) now have a tagcapability:predict_proba
. This indicates whether the classifier implements a non-default (non-delta-mass) probabilistic classification functionality.
Enhancements#
Data types, checks, conversions#
Forecasting#
[ENH] Adds
_predict_interval
toSARIMAX
to supportpredict_interval
andpredict_quantiles
(#4439) @yarnabrina[ENH] shift
ForecastingHorizon
-BaseForecaster
cutoff
interface to rely on public point (#4456) @fkiraly[ENH] testing in-sample forecasting - replace try/except in
test_predict_time_index
by tag and tag dependent contract (#4476) @fkiraly[ENH] remove monotonicity requirement from quantile prediction contract (#4480) @fkiraly
[ENH] remove superfluous implementation checks in
_predict_interval
and_predict_quantiles
ofBaseForecaster
(#4481) @yarnabrina[ENH] testing all forecasters
predict_quantiles
,predict_interval
in-sample (#4470) @fkiraly[ENH] performant re-implementation of
NaiveForecaster
-"last"
strategy (#4461) @fkiraly[ENH] adds
_predict_interval
in_StatsModelsAdapter
and inherits in other estimator to reduce code duplication (#4465) @yarnabrina[ENH] in
ForecastingHorizon
, refactorto_absolute().to_pandas()
calls to a method (#4464) @fkiraly
Time series classification#
[ENH]
predict_proba
capability tag for classifiers (#4012) @fkiraly[ENH] migrate
InceptionTime
classifier and example (fromsktime-dl
) (#3003) @tobiasweede
Time series regression#
Transformations#
Testing framework#
Maintenance#
[MNT] Changed line endings of
ElectricDevices.csv
andGunPoint.csv
fromCRLF
toLF
(#4452) @yarnabrina[MNT] ensure all elements in test matrix complete runs (#4472) @fkiraly
[MNT] add
InceptionTimeClassifier
andLSTMFCNClassifier
as direct module export (#4484) @fkiraly[MNT] address some warnings and deprecation messages from dependencies (#4486) @fkiraly
Documentation#
[DOC] Fix error in
MiniRocket
example code - wrong transformer (#4497) @doncarlos999[DOC] add
InceptionTimeClassifier
andLSTMFCNClassifier
to API docs (#4484) @fkiraly[DOC] fix typo in cython interface reference,
MySQM
->MrSQM
(#4493) @fkiraly[DOC] move content from pydata global 2022 (transformers, pipelines tutorial) to sktime main repo (#4381) @dashapetr
[DOC] improvements to description of
sktime
on the readthedocs landing page (#4444) @howdy07
Fixes#
Forecasting#
[BUG] fix
pandas
write error in probabilistic forecasts ofBaggingForecaster
(#4478) @fkiraly[BUG] fix
predict_quantiles
in_PmdArimaAdapter
and_StatsForecastAdapter
post 0.17.1 (#4469) @fkiraly[BUG]
ForecastingHorizon
constructor - override erroneously inferredfreq
attribute from regularDatetimeIndex
based horizon (#4466) @fkiraly, @yarnabrina[BUG] fix broken
DynamicFactor._predict_interval
(#4479) @fkiraly[BUG] fix
pmdarima
interfaces breaking forX
containing more indices than forecasting horizon (#3667) @fkiraly, @SzymonStolarski[BUG] fix
BATS
andTBATS
_predict_interval
interface (#4492, #4505) @fkiraly`[BUG] fix
VECM._predict_interval
interface for date-like indices (#4506) @fkiraly
Testing framework#
Contributors#
@dashapetr, @doncarlos999, @fkiraly, @howdy07, @marrov, @SzymonStolarski, @tobiasweede, @yarnabrina
Version 0.17.1 - 2023-04-10#
Maintenance patch (pandas 2
, attrs
). For last content update, see 0.17.0.
pandas 2
compatibility patchexperimental support for
pandas 2
with testing and upgrade instructions for userssktime
will continue to supportpandas 1
versions
User feedback and pandas 2
compatibility issues are appreciated in #4426.
Dependency changes#
the version bound
pandas<2.0.0
will be relaxed topandas<2.1.0
insktime 0.19.0
option 1: to keep using
pandas 1.X
from0.19.0
onwards, simply introduce thepandas<2.0.0
bound in downstream requirementsoption 2: to upgrade safely to
pandas 2.X
, follow the upgrade and testing instructions belowneither option impacts public interfaces of
sktime
, i.e., there are no removals, deprecations, or changes of contract besides the change ofpandas
bound insktime
requirements
attrs
changes from an implied (non-explicit) soft dependency to an explicit soft dependency (inall_extras
)
pandas 2
upgrade and testing#
support for
pandas 2
will be introduced gradually:experimental support period until 0.19.0 (all 0.17.X and 0.18.X versions)
full support from 0.19.0 (0.19.0, 0.19.X and onwards)
in the experimental period (0.17.1-0.18.last):
sktime
will have a dependency bound ofpandas<2.0.0
sktime
will aim to be compatible withpandas 2.0.X
as well aspandas 1, >=1.1.0
,sktime
can be run and tested withpandas 2.0.X
by force-installingpandas 2.0.X
estimators can be tested for
pandas 2
compatibility viacheck_estimator
under force-installedpandas 2.0.X
reports on compatibility issues are appreciated in #4426 (direct input or link from)
in the full support period (0.19.0-onwards):
sktime
requirements will allowpandas 2.0.X
and extend support withpandas
releasessktime
will aim to be compatible withpandas 2
(any version), as well aspandas 1, >=1.1.0
users choose their preferred
pandas
version by requirements on their downstream environmentthe bug and issue trackers should be used as normal
List of PR#
[MNT] address deprecation of
"mad"
option onDataFrame.agg
andSeries.agg
(#4435) @fkiraly[MNT] address deprecation of automatic drop on
DataFrame.agg
on non-numeric columns (#4436) @fkiraly[MNT] resolve
freq
related deprecations andpandas 2
failures in reducers (#4438) @fkiraly[MNT] except
Prophet
fromtest_predict_quantiles
due to sporadic failures (#4432) @fkiraly[MNT] except
VECM
fromtest_predict_quantiles
due to sporadic failures (#4442) @fkiraly[MNT] fix and sharpen soft dependency isolation logic for
statsmodels
andpmdarima
(#4443) @fkiraly
Version 0.17.0 - 2023-04-03#
Highlights#
Full support for python 3.11
reworked probabilistic forecasting & new metrics (
LogLoss
,CRPS
), integration with tuning (#4190, #4276, #4290, #4367) @fkiralyconditional transformer
TransformIf
, e.g., deseasonalize after seasonality test (#4248) @fkiralynew transformer interfaces: Christiano-Fitzgerald and Hodrick-Prescott filter (
statsmodels
), Fourier transform (#4342, #4402) @ken-maeda, @blazingbhavneeknew forecaster:
ForecastKnownValues
forn known or expert forecasts (#4243) @fkiraly
Dependency changes#
a new soft dependency was added, the
seasonal
package, required (only) for theSeasonalityPeriodogram
estimator.
Core interface changes#
BaseObject, BaseEstimator#
all
sktime
objects and estimators now possess a config interface, via newget_config
andset_config
methods. This is currently experimental, and there are no externally facing config fields at the moment.
Data types, checks, conversions#
sktime
now recognizes nullablepandas
dtypes
and coerces them to non-nullable if necessary. Previously, nullabledtype
would cause exceptions.
Forecasting#
the
BaseDistribution
object has been introduced as a potential return of full distribution forecasts and simulation queries. This is currently experimental, feedback and contributions are appreciated.Forecasters’
predict_proba
now returns ansktime
BaseDistribution
object, iftensorflow-probability
is not present (e.g., on python 3.11), or if the temporary deprecation argumentlegacy_interface=False
is set. The oldtensorflow
based interfaced will be deprecated over two cycles, see below.sktime
now contains metrics and losses for probability distribution forecasts. These metrics assumeBaseDistribution
objects as forecasts.
Deprecations and removals#
Dependencies#
numba
will change from core dependency to soft dependency insktime 0.18.0
. To ensure functioning of setups ofsktime
code dependent onnumba
based estimators going forward, ensure to installnumba
in the environment explicitly, or install theall_extras
soft dependency set which will continue to containnumba
. Besides this,numba
dependent estimators will function identically as before.sktime
’s base module will move to a new core dependency,skbase
, fromsktime 0.18.0
. This will not impact functionality or imports directly fromsktime
, or any usage.
Forecasting#
Forecasters’
predict_proba
pre-0.17.0tensorflow
based return will be replaced byBaseDistribution
object based return. This will be phased out in two minor cycles as follows.until 0.18.0, forecasters’
predict_proba
will returnBaseDistribution
by default only in cases where callingpredict_proba
would have raised an error, prior to 0.17.0, i.e., on python 3.11 and whentensorflow-probability
is not present in the python environment.until 0.18.0,
BaseDistribution
return can be enforced by setting the new argumentlegacy_interface=False
inpredict_proba
. This is useful for handling deprecation.from 0.18.0, the default for
legacy_interface
will be set toFalse
.from 0.19.0, the
legacy_interface
argument will be removed frompredict_proba
, together with the option to returntensorflow-probability
based returns.
Transformations#
DateTimeFeatures
: the default value of thekeep_original_columns
parameter has changed toFalse
FourierFeatures
: the default value of thekeep_original_columns
parameter has changed toFalse
Testing framework#
in
check_estimator
andrun_tests
, thereturn_exceptions
argument has been removed. It is now fully replaced byraise_exceptions
(its logical negation), which has been available since 0.16.0.
Enhancements#
BaseObject, BaseEstimator#
Data types, checks, conversions#
[ENH] nullable dtypes - ensure nullable columns are coerced to
float
dtype inpandas
conversions (#4245) @fkiraly[ENH]
is_equal_index
metadata element in checks and examples (#4312) @fkiraly[ENH] granular control of mtype metadata computation, avoid computation when not needed (#4389) @fkiraly, @hoesler
[ENH] turn off all unnecessary input checks in current base class boilerplate (#4390) @fkiraly
Forecasting#
[ENH] factor out column ensemble functionality from
_ColumnEnsembleForecaster
to new base mixin (#4231) @fkiraly[ENH]
ForecastKnownValues
forecaster that forecasts prescribed known or expert forecast values (#4243) @fkiraly[ENH] Improve vectorized metric calculation, deprecate
VectorizedDF.get_iloc_indexer
(#4228) @hoesler[ENH]
MeanAbsoluteError
-evaluate_by_index
(#4302) @fkiraly[ENH]
BaseForecastingErrorMetric
internal interface cleanup (#4305) @fkiraly[ENH] probabilistic forecasting rework part 1 - backend agnostic probability distributions (#4190) @fkiraly
[ENH] probabilistic forecasting rework part 2 - distribution forecast metrics log-loss, CRPS (#4276) @fkiraly
[ENH] probabilistic forecasting rework part 3 - forecasters (#4290) @fkiraly
[ENH] probabilistic forecasting rework part 4 - evaluation and tuning (#4367) @fkiraly
[ENH] informative error messages for forecasting pipeline constructors, for
steps
arg (#4371) @fkiraly
Parameter estimators#
Time series classification#
Transformations#
[ENH] transformer interfacing
numpy.fft
for simple fourier transform (#4214) @blazingbhavneek[ENH]
sktime
native column ensemble transformer (#4232) @fkiraly[ENH] refactoring segmentation transformers to use
pandas
native data types (#4267) @fkiraly[ENH] remove test for output values in
test_FeatureUnion_pipeline
(#4316) @fkiraly[ENH] Hodrick-Prescott filter transformer (
statsmodels
interface) (#4342) @ken-maeda[ENH] turn
BKFilter
into a directstatsmodels
interface (#4346) @fkiraly[ENH] Christiano-Fitzgerald filter transformer (
statsmodels
interface) (#4402) @ken-maeda
Testing framework#
[ENH] additional test parameter sets for performance metrics (#4246) @fkiraly
[ENH] test for
get_test_params
, and reserved parameters (#4279) @fkiraly[ENH] cleaned up probabilistic forecasting tests for quantile and interval predictions (#4393) @fkiraly, @yarnabrina
[ENH] cover list input case for
test_predict_interval
coverage
andtest_predict_quantiles
alpha
in forecaster contract tests (#4394) @yarnabrina
Maintenance#
[MNT] address deprecation of
pandas.DataFrame.iteritems
(#4271) @fkiraly[MNT] Fixes linting issue
B016 Cannot raise a literal
indistances
module (#4284) @SamiAlavi[MNT] add soft dependencies on python 3.11 that are 3.11 compatible (#4269) @fkiraly`
[MNT] integrate parameter estimators with
check_estimator
(#4287) @fkiraly[MNT] addressing
pytest
failure - downgradedash
to <2.9.0 (#4353) @fkiraly[MNT] resolve circular imports in
forecasting.base
(#4329) @fkiraly[MNT] Remove restrictions on branch for workflow that autodetect and updates
CONTRIBUTORS.md
(#4323) @achieveordie[MNT] carry out forgotten deprecation for
ContractableBOSS
typed_dict
parameter (#4331) @fkiraly[MNT] except forecasters failing proba prediction tests (previously masked by buggy tests) (#4364) @fkiraly
[MNT] split up
transformations.compose
into submodules (#4368) @fkiraly[MNT] replace emergency
dash
bound by exclusion of failing version 2.9.0 (#4415) @fkiraly[MNT] remove soft dependency import warnings in modules and documented requirements to add these (#4398) @fkiraly
[MNT] Fix linting issues in transformations module (#4291) @SamiAlavi
[MNT] Fixes linting issues in
base
,networks
,registry
modules (#4310) @SamiAlavi[MNT] resolve circular imports in
forecasting.base
(#4329) @fkiraly[MNT] Linting
test_croston.py
(#4334) @ShivamPathak99[MNT] except forecasters failing proba prediction tests (previously masked by buggy tests) (#4364) @fkiraly
[MNT] Auto-fixing linting issues (#4317) @SamiAlavi
[MNT] Fix linting issues in
clustering
module (#4318) @SamiAlavi[MNT] Fix linting issues in
forecasting
module (#4319) @SamiAlavi[MNT] Fixes linting issues in
annotation
module (#4309) @SamiAlavi[MNT] Fix linting issues in
series_as_features
,tests
,dist_kernels
,benchmarking
modules (#4321) @SamiAlavi[MNT] Fixes linting issues in
classification
module (#4311) @SamiAlavi[MNT] Fix linting issues in
performance_metrics
module (#4320) @SamiAlavi[MNT] Fix linting issues in
utils
module (#4322) @SamiAlavi[MNT] replace author names by GitHub ID in author fields (#4340) @SamiAlavi
[MNT] address deprecation warnings from dependencies (#4423) @fkiraly
Documentation#
[DOC] direct documentation links to
sktime.net
addresses (#4241) @fkiraly[DOC] improved reducer docstring formatting (#4160) @fkiraly
[DOC] improve docstring for
VectorizedDF.items
and.__iter__
(#4223) @fkiraly[DOC] direct documentation links to
sktime.net
addresses (#4241) @fkiraly[DOC] update transformer extension template docstrings, reference to
Hierarchical
(#4250) @fkiraly[DOC] API reference for parameter estimator module (#4244) @fkiraly
[DOC] add missing docstrings in
PlateauFinder
module (#4255) @ShivamPathak99[DOC] docstring improvements for
ColumnConcatenator
(#4272) @JonathanBechtel[DOC] Small docstring fixes in reducer module and tests (#4274) @danbartl
[DOC] clarified requirement for
get_test_params
in extension templates (#4289) @fkiraly[DOC] extension template for parameter estimators (#4288) @fkiraly
[DOC] Update
CONTRIBUTORS.md
to most recent (#4358) @fkiraly[DOC] improved method docstrings for transformers (#4328) @fkiraly
[DOC] updated
dtw_distance
docstring example to include import (#4324) @JonathanBechtel[DOC]
TimeSeriesKMeans
- correctinit_algorithm
default in docstring (#4347) @marcosousapoza[DOC] add missing import statements in numba distance docstrings (#4376) @JonathanBechtel
[DOC] guide for adding cython based estimators (#4388) @fkiraly
[DOC] add docstring example for
ForecastX
forecasting only some exogeneous variables (#4392) @fkiraly[DOC] improvements to “invitation to contribute” paragraph in documentation (#4395) @abhisek7154
[DOC] README and docs update - tasks table, typos, lookup (#4414) @fkiraly
Fixes#
Data types, checks, conversions#
[BUG] fix level name handling in conversions
nested_univ
/pd-multiindex
(#4270) @fkiraly[BUG] fix incorrect inference of
is_equally_spaced
for unequal indexpd-multiindex
typed data (#4308) @noahleegithub
Forecasting#
[BUG] fix
Settingwithcopywarning
when using custom error metric inevaluate
(#4294) @fkiraly, @marrov[BUG] fix forecasting metrics’
evaluate_by_index
for hierarchical input (#4306) @fkiraly, @marrov[BUG] pass user passed parameters to
ForecastX
to underlying estimators (#4391) @yarnabrina[BUG] fix unreported probabilistic prediction bugs detected through #4393 (#4399) @fkiraly
[BUG] ensure forecaster
cutoff
hasfreq
inferred if inferable, for single series (#4406) @fkiraly[BUG] fix
ValueError
inVECM._predict_interval
if multiple coverage values were passed (#4411) @yarnabrina[BUG] temporarily skip
test_predict_quantiles
forVAR
due to known sporadic bug #4420 (#4425) @yarnabrina
Parameter estimators#
Time series classification#
Time series regression#
Testing framework#
Utilities#
Contributors#
@abhisek7154, @achieveordie, @blazingbhavneek, @danbartl, @fkiraly, @hoesler, @JonathanBechtel, @ken-maeda, @kgeis, @lmmentel, @marcosousapoza, @marrov, @noahleegithub, @SamiAlavi, @ShivamPathak99, @yarnabrina
Version 0.16.1 - 2023-02-13#
Highlights#
Experimental python 3.11 support. Full python 3.11 support is planned with 0.17.0. (#4000, #3631, #4226) @fkiraly
Experimental benchmarking module based on
kotsu
, forecasting sub-module (#2977) @alex-hh, @dbcerigosubstantial speed-ups for panel and hierarchical transformers and forecasters (#4193, #4194, #4195, #4196) @hoesler
Testing and feedback of python 3.11 support and the benchmarking module are appreciated.
Dependency changes#
sktime
now supports python 3.11on python 3.11,
numba
is not a dependency, and a number of other packages are also not available as soft dependencies, mostly due to compatibility with 3.11.sktime
and its test suite can now be used withoutnumba
installed, with the exception of estimators depending onnumba
.numba
is still a core dependency on python 3.7-3.10.numba
will become a soft dependency, from a core dependency, in 0.18.0. Estimators dependent onnumba
will function exactly as before ifnumba
is present in the python environment.
Core interface changes#
Benchmarking#
the
kotsu
-based benchmarking module introduces a new design and syntax for benchmarking forecasters.
Forecasting#
forecasters will now consistently preserve the
name
attribute inpd.Series
passed. Previously, namedpd.Series
were not fully supported.
Deprecations and removals#
Dependencies#
numba
will change from core dependency to soft dependency insktime 0.18.0
. To ensure functioning of setups ofsktime
code dependent onnumba
based estimators going forward, ensure to installnumba
in the environment explicitly, or install theall_extras
soft dependency set which will continue to containnumba
. Besides this,numba
dependent estimators will function identically as before.
Enhancements#
Benchmarking#
Data types, checks, conversions#
Forecasting#
[ENH] fixes for forecasters to retain
name
attribute inpredict
(#4161) @fkiraly[ENH] improved/fixed
scoring
argument for forecasting tuners (#4178) @fkiraly[ENH] faster test for forecasters’
predict_residuals
(#4156) @fkiraly[ENH] test that forecasters preserve
name
attr ofpd.Series
(#4157) @fkiraly[ENH] improved/fixed
scoring
argument for forecasting tuners (#4178) @fkiraly
Transformations#
Fixes#
Data sets and data loaders#
[BUG] Correct
'StarlightCurves'
data set identifier string, to ‘StarLightCurves’ (#4222) @NeuralNut
Forecasting#
[BUG] fixes for forecasters to retain
name
attribute inpredict
(#4161) @fkiraly[BUG] ensure
pd.Series
name
attribute is preserved in conversion to/frompd.DataFrame
andnp.ndarray
, asSeries
scitype (#4150) @fkiraly[BUG]
AutoETS
,UnobservedComponents
: fixpredict_interval
for integer based index not starting at zero (#4180) @fkiraly
Parameter estimation#
Time series clustering#
Maintenance#
Documentation#
[DOC] Fix rendering of examples section in
Lag
docstring (#3960) @aiwalter[DOC] improved docstring for
dtw_distance
(#4028) @fkiraly, @matthewmiddlehurst[DOC] remove slack links in favour of discord (#4202) @fkiraly
[DOC] fix tables in transformer
transform
docstrings - change md to rst (#4199) @romanlutz[DOC] remove gap between pandas and
DataFrame
|Series
in classification notebook (#4200) (#4200) @romanlutz[DOC] Fixed table in
CI
overview documentation (#4198) @pranavvp16
Contributors#
@aiwalter, @alex-hh, @danbartl, @dbcerigo, @fkiraly, @hoesler, @matthewmiddlehurst, @NeuralNut, @pranavvp16, @romanlutz
Version 0.16.0 - 2023-01-30#
Highlights#
HierarchyEnsembleForecaster
for level- or node-wise application of forecasters on panel/hierarchical data (#3905) @VyomkeshVyasnew transformer:
BKFilter
, Baxter-King filter, interfaced fromstatsmodels
(#4127) @klam-data, @pyyim`get_fitted_params
of pipelines and other heterogenous meta-estimators now supports parameter nesting (#4110) @fkiraly
Dependency changes#
statsmodels
is now a soft dependency. Estimators dependent onstatsmodels
can be used exactly as before ifstatsmodels
is present in the python environment.
Core interface changes#
BaseEstimator#
The method
get_fitted_params
, of allBaseEstimator
descendants (any estimator withfit
), has a new boolean argumentdeep
, defaultTrue
. Similar to the argument of the same name ofget_params
, this allows to control for composite estimators, whether to return fitted parameters with or without estimator nesting.
Forecasting#
all forecasters: the public
cutoff
attribute of forecasters has changed topd.Index
subtype, from index element. To update previously functional code, replace references tocutoff
bycutoff[0]
.
Deprecations and removals#
Dependencies#
statsmodels
has changed from core dependency to soft dependency insktime 0.16.0
. To ensure functioning of setups ofsktime
code dependent onstatsmodels
based estimators going forward, ensure to installstatsmodels
in the environment explicitly, or install theall_extras
soft dependency set which will continue to containstatsmodels
.
Data types, checks, conversions#
check_is_scitype
: themsg_legacy_interface
argument has now been removed. Future behaviour is as per the default of the argument,msg_legacy_interface=False
.
Forecasting#
all forecasters: the public
cutoff
attribute of forecasters has changed topd.Index
subtype, from index element. To update previously functional code, replace references tocutoff
bycutoff[0]
.
Transformations#
Catch22
: thetransform_single_feature
method has been removed from theCatch22
transformerFourierFeatures
: in 0.17.0, the default value of thekeep_original_columns
parameter will change toFalse
Enhancements#
BaseEstimator#
Data types, checks, conversions#
Forecasting#
[ENH]
HierarchyEnsembleForecaster
for level- or node-wise application of forecasters on panel/hierarchical data (#3905) @VyomkeshVyas[ENH] second set of test parameters for
ARIMA
(#4099) @fkiraly[ENH] Refactor/simplify
sktime.forecasting.model_selection._split.BaseSplitter._split_vectorized
(#4108) @mateuja
Time series annotation#
[ENH]
PoissonHMM
estimator (#4126) @klam-data
Time series classification#
[ENH] Reduce repetitive code in
test_boss.py
and add check for string datatype in _boss.py (#4100) @erjieyong
Time series generators#
[ENH] added
piecewise_multinomial
(#4079) @JonathanBechtel
Transformations#
[ENH] Add
keep_original_columns
option toFourierFeatures
trafo (#4008) @KishManani[ENH] Add
BKFilter
Transformer (#4127) @klam-data, @pyyim`
Maintenance#
[MNT] Automate updating CONTRIBUTORS.md (#3807) @achieveordie
[MNT] address
pd.Series
constructordtype
deprecation /FutureWarning
- part 2 (#4111) @fkiraly[MNT] 0.16.0 change/deprecation action -
statsmodels
as soft dependency (#3516) @fkiraly[MNT] emergency fix for precommit CI failure - remove
isort
(#4164) @fkiraly[MNT] isolate
statsmodels
inHierarchyEnsembleForecaster
docstring (#4166) @fkiraly[MNT] 0.16.0 deprecation action - change
BaseForecaster.cutoff
topd.Index
(#3678) @fkiraly[MNT] isolate
statsmodels
inHierarchyEnsembleForecaster
docstring - accidentally missing commit (#4168) @fkiraly[MNT] Bump
isort
to5.12.0
inpre-commit
config (#4167) @snnbotchway
Documentation#
Fixes#
BaseObject#
Forecasting#
[BUG] fix
get_fitted_params
for forecaster tuners, missingbest_forecaster
etc (#4102) @fkiraly[BUG] fix
get_fitted_params
in case of vectoriztion for forecasters (#4105) @fkiraly[BUG] fix erroneous
int
coercion ofTrendForecaster
andPolynomialTrendForecaster
onDatetimeIndex
(#4133) @fkiraly[BUG] Remove unnecessary
freq
error in_RecursiveReducer
(#4124) @danbartl
Time series classification#
[BUG] Diagnose and fix sporadic failures in the test suite due to
MemoryError
(#4036) @achieveordie[BUG] fix - Callbacks cause deep learning estimators to fail (#4095) @aaronrmm
Transformations#
Contributors#
@aaronrmm, @achieveordie, @danbartl, @erjieyong, @fkiraly, @JonathanBechtel, @KishManani, @klam-data, @mateuja, @Pyyim, @romanlutz, @snnbotchway, @VyomkeshVyas
Version 0.15.1 - 2023-01-12#
Highlights#
substantial speed-ups of boilerplate for panel and hierarchical data, may result in 10-50x overall speed improvement on large panel/hierarchical data (#3935, #4061) @danbartl
dunders for time series distances and kernels, for arithmetic composition and pipelining (#3949) @fkiraly
pipelines and dunders for time series clustering (#3967) @fkiraly
new estimators: DBSCAN clustering for time series; kernel support vector classifier for time series kernels (#3950, #4003) @fkiraly, @josuedavalos
notes and troubleshooting guide for installing
sktime
under macOS with ARM processors (#4010) @dainelli98
Core interface changes#
BaseObject#
the
python_dependencies
tag now allows full PEP 440 specifier strings for specifying package dependencies
Data types, checks, conversions#
new mtypes for time series, panels and hierarchical data that can be used when
dask
is installed:dask_series
,dask_panel
,dask_hierarchical
. These can be used in estimators now. End-to-end integration withdask
is not yet available, but on the roadmap.
Distances, kernels#
pairwise transformers now possess a method
transform_diag
which returns the diagonal of the distance/kernel matrixpairwise panel transformers can be composed with each other using arithmetic operations, which will result in the corresponding arithmetic combination of transformers, e.g., sum of distances
pairwise panel transformers can be composed with simple transformers using the
*
dunder, which will result in a pipeline of first applying the simple transformer, then the pairwise transformer
Time series clustering#
time series clusterers can now be used with
make_pipeline
and the*
dunder to build linear pipelines with time series transformers
Deprecations and removals#
in
check_estimator
andrun_tests
, thereturn_exceptions
argument has been deprecated, and will be replaced withraise_exceptions
(its logical negation) in 0.17.0. Until 0.17.0, both arguments will work, with non-defaults being overriding.
Enhancements#
Data types, checks, conversions#
[ENH]
dask
mtypes - part 2,Panel
andHierarchical
(#4011) @fkiraly[ENH] speed up mtype check for
pandas
based mtypes withpd.PeriodIndex
(#3991) @fkiraly[ENH] improve performance of
pandas
based panel and hierachical mtype checks (#3935) @danbartl[ENH] Speed up hierarchical checks and unify with panel approach (#4061) @danbartl
Distances, kernels#
[ENH] generalize
AggrDist
andFlatDist
to allow arbitrary callables, includingsklearn
kernel functions (#3956) @fkiraly[ENH]
transform_diag
method for pairwise transformers, for computing diagonal of distance/kernel matrix (#3957) @fkiraly[ENH] wrapper to convert kernels to distances and distances to kernels (#3958) @fkiraly
[ENH] dunders for time series distances and kernels (#3949) @fkiraly
Forecasting#
[ENH] add global forecasting (pooling) options to
DirectTabularRegressionForecaster
andDirectTimeSeriesRegressionForecaster
(#3688) @danbartl[ENH] forecasting benchmark function
evaluate
to accept list of scorers (#3883) @aiwalter[ENH] add contract test for hierarchical forecasting (#3969) @fkiraly
[ENH] extend
Prophet
to allowpd.PeriodIndex
(#3995) @fkiraly[ENH] improve handling of
scitype
inmake_reduction
(#4022) @fkiraly[ENH]
hcrystalball
forecaster adapter (#4040) @MichalChromcak
Pipelines#
Time series classification#
Time series clustering#
[ENH] DBSCAN clustering for time series (#4003) @fkiraly, @josuedavalos
Transformations#
[ENH] “typical length” constant in transformer scenarios (#3892) @fkiraly
[ENH] change
DateTimeFeatures
trafo to work with multi-index data and add option to drop columns. (#3996) @KishManani[ENH] enable
TimeSince
trafo to transform multiindex dataframes natively (#4006) @KishManani[ENH] make
TimeSince
trafo faster by changing period diff calculation (#4018) @KishManani[ENH] clean up
Detrender
, extend to forecasters which require forecasting horizon infit
(#4053) @fkiraly
Testing framework#
[ENH] update
_check_soft_dependencies
to allow PEP 440 specifier strings for version bounds (#3925) @fkiraly[ENH] allow tuples/lists of package identifier strings in
_check_soft_dependencies
(#3955) @fkiraly[ENH]
_check_estimator_deps
to also allows list or tuple ofBaseObject
-s (#4002) @fkiraly[ENH] extend
sklearn_scitype
to infer the scitype correctly from composites (#4021) @fkiraly[ENH] Improve error messages in
test_estimator_tags
test (#4014) @fkiraly[ENH] in
check_estimator
andrun_tests
replacereturn_exceptions
arg withraise_exceptions
, with deprecation (#4030) @fkiraly[ENH] add test parameter sets to increase number of test parameter sets per estimator to 2 or larger (#4043) @fkiraly
Visualisations#
[ENH] Implementing plot title for
plot_series
(#4038) @arnavrneo
Maintenance#
[MNT] carry out accidentally missed deprecation action for 0.15.0: in
WEASEL
andBOSS
, removetype_dict
and update defaultalphabet_size=2
(#4025) @xxl4tomxu98[MNT] move
badrmarani
contrib to chronological order (#4029) @fkiraly[MNT] skip #4033 related failures until fixed (#4034) @fkiraly
[MNT] skip
LSTMFCNClassifier
tests due to unfixed failure onmain
(#4037) @fkiraly[MNT] explicit lower version bound on
scipy
(#4019) @fkiraly[MNT] fix
_check_soft_dependencies
breaking for PEP 440 specifiers without class reference (#4044) @fkiraly[MNT] downwards compatibility fixes for minimal dependency set (#4041) @fkiraly
[MNT] address
pd.Series
constructordtype
deprecation /FutureWarning
(#4031) @fkiraly[MNT] isolate
statsmodels
, recent instances (#4035) @fkiraly[MNT] address
pandas
astype
deprecation /FutureWarning
inTrendForecaster
(#4032) @fkiraly[MNT] explicit use of
min_periods
args insideWindowSummarizer
to address deprecation message (#4052, #4074) @arnavrneo
Documentation#
[DOC] complete docstring for
ForecastingPipeline
(#3840) @darshitsharma[DOC] updates to distances API reference page (#3852) @MatthewMiddlehurst, @fkiraly
[DOC] add some missing entries in API reference (#3998) @fkiraly
[DOC] fix the build tag in README (#4007) @badrmarani
[DOC] warning, notes, and troubleshooting for installing
sktime
with macOS ARM (#4010) @dainelli98[DOC]
all_estimators
reference on all estimator pages (#4027) @fkiraly, @MatthewMiddlehurst[DOC] remove
make_reduction
scitype arg in examples (#4020) @fkiraly[DOC] more details on code quality and linting (#4063) @miraep8
[DOC] section on new tests in
PULL_REQUEST_TEMPLATE
(#4093) @Aarthy153
Fixes#
Distances, kernels#
Forecasting#
[BUG] fix
StatsForecastAutoARIMA_.predict
incorrect in-sample start index (#3942) @tianjiqx[BUG] fix
statsmodels
estimators when exogenousX
is passed with more indices thanfh
(#3972) @adoherty21[BUG] fix
ReconcilerForecaster
when not used in a pipeline withAggregator
(#3980) @ciaran-g[BUG] fix logic bug in
ForecastX
predictions (#3987) @aiwalter, @fkiraly[BUG] fix
Prophet
not working with non-integer forecast horizon (#3995) @fkiraly[BUG] fix dropped column index in
BaggingForecaster
(#4001) @fkiraly[BUG] fix
TrendForecaster
ifregressor
is not boolean coercible (#4047) @fkiraly[BUG] fix mutation of
regressor
inPolynomialTrendForecaster._fit
(#4057) @fkiraly[BUG] fix
ConformalIntervals
update whensample_frac
argument is not None (#4083) @bethrice44
Governance#
Time series classification#
[BUG] constructor of any DL estimator to pass non-default values to underlying
Network
object (#4075) @achieveordie[BUG] Fix BOSS based classifiers truncating class names to single character length (#4096) @erjieyong
Time series clustering#
Time series regression#
[BUG] constructor of any DL estimator to pass non-default values to underlying
Network
object (#4075) @achieveordie
Transformations#
[BUG] fix
TimeSince
check of inconsistency betweentime_index
andstart
(#4015) @KishManani[BUG] fix multivariate and hierarchical behaviour of
Detrender
(#4053) @fkiraly
Testing framework#
Visualisations#
Contributors#
@Aarthy153, @achieveordie, @adoherty21, @aiwalter, @arnavrneo, @badrmarani, @bethrice44, @ciaran-g, @dainelli98, @danbartl, @darshitsharma, @erjieyong, @fkiraly, @hakim89, @josuedavalos, @KishManani, @MatthewMiddlehurst, @MichalChromcak, @miraep8, @patrickzib, @tianjiqx, @xxl4tomxu98
Version 0.15.0 - 2022-12-22#
Highlights#
MLflow
custom flavor forsktime
forecasting (#3912, #3915) @benjaminbluhmcompatibility with most recent versions of core dependencies
sktime 1.2.0``and ``numpy 1.24
(#3922) @fkiralyTimeBinner
transformation for temporal bin aggregation (#3745) @kcc-lionE-Agglo estimator for hierarchical agglomerative cluster estimation (#3430) @KatieBuc
week-end dummy
is_weekend
inDateTimeFeatures
transformation (#3844) @KishMananideep learning classifiers migrated from
sktime-dl
tosktime
: ResNet, LSTM-FCN (#3714, #3881) @nilesh05apr, @solen0id
Dependency changes#
sktime
is now compatible withnumpy 1.24
, bound is relaxed to<1.25
sktime
is now compatible withsklearn 1.2.0
, bound is relaxed to<1.3.0
pycatch22
is no longer a soft dependency ofsktime
, due to installation issues.pycatch22
based transformers are still functional if the dependency is installed in the python environment.statsmodels
will change from core dependency to soft dependency insktime 0.16.0
Core interface changes#
BaseObject#
Comparison by equality for any sktime
object now compares identity of parameters,
as obtained via get_params
, with recursive application if objects/estimators are nested.
Deprecations and removals#
Dependencies#
statsmodels
will change from core dependency to soft dependency insktime 0.16.0
. To ensure functioning of setups ofsktime
code dependent onstatsmodels
based estimators after the deprecation period, ensure to installstatsmodels
in the environment explicitly, or install theall_extras
soft dependency set which will continue to containstatsmodels
.
Data types, checks, conversions#
datatypes.check_is_scitype
: 2nd return argument (only returned if return_metadata=True
)
will be changed from list
to dict
format (see docstring).
The list
format is deprecated since 0.14.0, and replaced by dict
in 0.15.0.
The format is determined by temporary additional arg msg_legacy_interface
, which will be
the default has now changed to False
(dict
format).
The msg_legacy_interface
argument and the option to return the legacy list
format will be removed in 0.16.0.
Forecasting#
ExpandingWindowSplitter
hadstart_with_window
argument removed. From now on,initial_window=0
should be used instead ofstart_with_window=False
.the row transformers,
SeriesToSeriesRowTransformer
andSeriesToPrimitivesRowTransformer
have been removed. Row/instance vectorization functionality is natively supported bysktime
since 0.11.0 and does not need to be added by these wrappers anymore. Both transformers will be removed in 0.15.0. To migrate, simply remove the row transformer wrappers. In some rarer, ambiguous vectorization cases (e.g., using wrapped functions that are vectorized, such asnp.mean
),FunctionTransformer
may have to be used instead ofSeriesToPrimitivesRowTransformer
.change to public
cutoff
attribute delayed to 0.16.0: publiccutoff
attribute of forecasters will change topd.Index
subtype, from index element.
Time series classification#
Delayed: the base class of
ProbabilityThresholdEarlyClassifier
will be changed toBaseEarlyClassifier
in 0.16.0. This will change how classification safety decisions are made and returned, seeBaseEarlyClassifier
orTEASER
for the new interface.
Transformations#
transformations.series.compose
has been removed in favour oftransformations.compose
. All estimators in the former have been moved to the latter.The default of
default_fc_parameters
inTSFreshFeatureExtractor
andTSFreshRelevantFeatureExtractor
has beenchanged from"efficient"
to"comprehensive"
.
Testing framework#
The general interface contract test
test_methods_do_not_change_state
has been renamed totest_non_state_changing_method_contract
Enhancements#
MLOps & Deployment#
[ENH] MLflow custom flavor for
sktime
forecasting (#3912) @benjaminbluhm
BaseObject#
Forecasting#
Time series annotation#
Time series classification#
[ENH] Migrate LSTM-FCN classifier from
sktime-dl
tosktime
(#3714) @solen0id[ENH] Migrate
ResNetClassifier
fromsktime-dl
tosktime
(#3881) @nilesh05apr
Time series regression#
[ENH]
DummyRegressor
for time series regression (#3968) @badrmarani
Transformations#
[ENH]
TimeBinner
transformation for temporal bin aggregation (#3745) @kcc-lion[ENH] Add
is_weekend
option toDateTimeFeatures
trafo (#3844) @KishManani[ENH] Add multiplicative option to
Detrender
(#3931) @KishManani
Visualisations#
[ENH] Add support for plotting intervals in
plot_series
(#3825) @chillerobscuro[ENH] Add
colors
argument toplot_series
(#3908) @chillerobscuro
Fixes#
Forecasting#
Time series classification#
Time series regression#
Transformations#
Visualisations#
Documentation#
[DOC] fixed rendering in dependencies doc (#3846) @templierw
[DOC] update transformers extension section in transformers tutorial (#3860) @fkiraly
[DOC] tidying Rocket docstrings (#3860) @TonyBagnall
[DOC] added post-processing in pipelines to forecasting tutorial (#3878) @nshahpazov
[DOC] changing import path for
plot_cluster_algorithm
(#3945) @GianFree
Maintenance#
[MNT] Additional project urls in
pyproject.toml
(#3864) @lmmentel[MNT]
sklearn 1.2.0
compatibility - remove private_check_weights
import inKNeighborsTimeSeriesClassifier
and -Regressor
(#3918) @fkiraly[MNT]
sklearn 1.2.0
compatibility - coverBaseForest
parameter change (#3919) @fkiraly[MNT]
sklearn 1.2.0
compatibility - decouplesklearn.base._pprint
(#3923) @fkiraly[MNT]
sklearn 1.2.0
compatibility - removenormalize=False
args fromRidgeClassifierCV
(#3924) @fkiraly[MNT]
sklearn 1.2.0
compatibility -ComposableTimeSeriesForest
reserved attribute fix (#3926) @fkiraly[MNT] remove
pycatch22
as a soft dependency (#3917) @fkiraly[MNT] Update
sklearn
compatibility to1.2.x
, version bound to<1.3
(#3922) @fkiraly[MNT] bump
numpy
version bound to<1.25
and fix compatibility issues (#3915) @aquemy, @fkiraly[MNT] skip sporadic
ResNetClassifier
failures (#3974) @fkiraly
Contributors#
@aiwalter, @aquemy, @badrmarani, @benjaminbluhm, @bethrice44, @chillerobscuro, @ciaran-g, @danbartl, @dsanr, @fkiraly, @GianFree, @KatieBuc, @kcc-lion, @KishManani, @lmmentel, @nilesh05apr, @nshahpazov, @solen0id, @templierw, @TonyBagnall
Version 0.14.1 - 2022-11-30#
Highlights#
dedicated notebook tutorial for transformers and feature engineering - stay tuned for more at pydata global 2022! (#1705) @fkiraly
documentation & step-by-step guide to add a new dataset loader (#3805) @templierw
new transformer:
Catch22Wrapper
, direct interface forpycatch22
(#3431) @MatthewMiddlehurstnew transformer:
TimeSince
for feature engineering, time since fixed date/index (#3810) @KishMananipermutation wrapper
Permute
for tuning of estimator order in forecatsing pipelines (#3689) @aiwalter @fkiralyall soft dependencies are now isolated in tests, all tests now run with minimal dependencies (#3760) @fkiraly
Core interface changes#
Forecasting#
dunder method for variable subsetting exogeneous data:
my_forecaster[variables]
will create aForecastingPipeline
that subsets the exogeneous data tovariables
Enhancements#
BaseObject#
Forecasting#
[ENH] direct reducer prototype rework based on feedback (#3382) @fkiraly
[ENH] forecast default update warning to point to stream forecasting wrappers (#3410) @fkiraly
[ENH] getitem / square brackets dunder for forecasting (#3740) @fkiraly
[ENH] Add test for global forecasting case (#3728) @danbartl
Time series classification#
[ENH]
Catch22Transformer
update andCatch22Wrapper
forpycatch22
(#3431) @MatthewMiddlehurst[ENH]
MinirocketMultivariateVariable
transformer, miniROCKET for unequal length time series (#3786) @michaelfeil[ENH] slightly speed up the tests for
ComposableTimeSeriesForestClassifier
(#3762) @TonyBagnall[ENH] Warning rather than error for TDE small series (#3767) @MatthewMiddlehurst
[ENH] Add some
get_test_params
values to deep learning classifiers and regressors (#3761) @TonyBagnall
Time series regression#
[ENH] Add some
get_test_params
values to deep learning classifiers and regressors (#3761) @TonyBagnall
Transformations#
[ENH] better error message on transform output check fail (#3724) @fkiraly
[ENH] second test case for
FeatureUnion
, construction without names (#3792) @fkiraly[ENH] permutation wrapper
Permute
for tuning of pipeline sequence (#3689) @aiwalter @fkiraly[ENH]
fit_transform
forTSFreshRelevantFeatureExtractor
(#3785) @MatthewMiddlehurst[ENH]
TimeSince
transformer for feature engineering, time since fixed date/index (#3810) @KishManani
Governance#
[GOV] Add @achieveordie as a core developer (#3851) @achieveordie
Fixes#
Data loaders#
Forecasting#
[BUG] fix
ColumnEnsembleForecaster
for hierarchicalX
(#3768) @RikStarmans @fkiraly[BUG] decouple forecasting pipeline module from registry (#3799) @fkiraly
Time series classification#
[BUG]
keras
import quick-fix (#3744) @ltsaprounis[BUG] in
TemporalDictionaryEnsemble
, setParallel
prefer="threads"
, fixes #3788 (#3808) @TonyBagnall[BUG] in
DummyClassifier
, fix incorrectly setcapability:multivariate
tag (#3858) @fkiraly
Transformations#
[BUG] fix behaviour of FourierFeatures with pd.DatetimeIndex (#3606) @eenticott-shell
[BUG] fix infinite loop in
get_params
forFeatureUnion
(#3708) @hoesler @fkiraly[BUG]
SupervisedIntervals
bugfixes and clean up (#3727) @MatthewMiddlehurst[BUG] Reduce size of
MultiRocket
test example to avoid sporadicMemoryError
in testing (#3813) @TonyBagnall[BUG] fix return index for transformers’
Primitives
output in row vectorization case (#3839) @fkiraly[BUG] in
Reconciler
, fix summation matrix bug for small hierarchies with one unique ID in outer index (#3859) @ciaran-g
Testing framework#
[BUG] Update
test_deep_estimator_full
to incorporate new versions oftensorflow
/keras
(#3820) @achieveordie
Documentation#
[DOC] Update documentation for Greedy Gaussian Segmentation (#3739) @lmmentel
[DOC] Compose and deep learning classifier doc tidy (#3756) @TonyBagnall
[DOC] added new slack link (#3747) @hadifawaz1999
[DOC] Updates documentation for channel selection (#3770) @haskarb
[DOC] Update File Format Specifications page to show list of hyperlinked formats (#3775) @achieveordie
[DOC] Examples webpage (#3653) @MatthewMiddlehurst
[DOC] Update CC and CoC and active core-devs lists in
team.rst
(#3733) @GuzalBulatova[DOC] Improve ShapeletTransformClassifier docstring (#3737) @MatthewMiddlehurst
[DOC] Improve sklearn classifier docstrings (#3754) @MatthewMiddlehurst
[DOC] Add missing estimators to classification API page (#3742) @MatthewMiddlehurst
[DOC] Updates to regression API reference (#3751) @TonyBagnall
[DOC] Fixed doc typo in
RocketClassifier
docstring (#3759) @matt-wisdom[DOC] Include section on unequal length data in classification notebook (#3809) @MatthewMiddlehurst
[DOC] documentation on workflow of adding a new dataset loader (#3805) @templierw
[DOC] add defaults in
ScaledLogitTransformer
docstring (#3845) @fkiraly[DOC] Update CONTRIBUTORS.md (#3781) @achieveordie
[DOC] Docstring improvements to
TSFreshRelevantFeatureExtractor
(#3785) @MatthewMiddlehurst
Maintenance#
[MNT] Converted
setup.py
topyproject.toml
. Depends onsetuptools>61.0.0
(#3723) @jorenham @wolph[MNT] decouple forecasting pipeline module from registry (#3799) @fkiraly
[MNT] temporary skip of new failure
test_deep_estimator_full[keras-adamax]
(#3817) @fkiraly[MNT] fix
pyproject.toml
broken string (#3797) @TonyBagnall[MNT] exclude
TapNet
from tests (#3812) @TonyBagnall[MNT] test soft dependency isolation in non-suite tests (#3750) @fkiraly
[MNT] Address
ContinuousIntervalTree
andRandomShapeletTransform
deprecation warnings (#3796) @MatthewMiddlehurst[MNT] isolate
statsmodels
, part 4: isolatingstatsmodels
in non-suite tests (#3821) @fkiraly
Contributors#
@achieveordie, @aiwalter, @ciaran-g, @danbartl, @eenticott-shell, @fkiraly, @hadifawaz1999, @haskarb, @hoesler, @jorenham, @KishManani, @lmmentel, @matt-wisdom, @MatthewMiddlehurst, @michaelfeil, @RikStarmans, @templierw, @TonyBagnall, @wolph
Version 0.14.0 - 2022-11-05#
Highlights#
serialization and deserialization of all
sktime
objects viasave
method &base.load
(#3336, #3425) @achieveordie @fkiralydocumented format specification for
.ts
files (#3380) @achieveordienew forecaster: modular/configurable Theta forecaster (#1300) @GuzalBulatova
new probabilistic prediction adder for forecasters: squaring residuals (#3378) @kcc-lion
forecasting
evaluate
now supports hierarchical and panel data and parallelism viadask
andjoblib
(#3511, #3542) @topher-lo @fkiralyget_fitted_params
now supported for all estimators via defaults (#3645) @fkiraly
Core interface changes#
BaseObject & BaseEstimator#
all objects and estimators (
BaseObject
descendants) now possess asave
method for serialization to memory or file. Serialized objects can be deserialized bybase.load
. Interface contracts onsave
andload
are now tested by the standard test suite (e.g.,check_estimator
).all fittable objects (“estimators”,
BaseEstimator
descendants) now have a functioning default implementation ofget_fitted_params
. Interface contracts onget_fitted_params
are now tested by the standard test suite (e.g.,check_estimator
).the extender contract for
get_fitted_params
has changed. For new implementations ofsktime
estimators, developers should implement_get_fitted_params
rather thanget_fitted_params
directly, similar tofit
and_fit
. The extension templates have been updated accordingly. Estimators following the old extension contract are still compatible for the time being and will remain compatible at least until 0.15.0.
Deprecations and removals#
Forecasting#
ExpandingWindowSplitter
parameterstart_with_window
is deprecated and will be removed in 0.15.0. For continued functionality ofstart_with_window=True
, usestart_with_window=0
instead. Other values ofstart_with_window
will behave as in the casestart_with_window=False
.Isolated
pd.timedelta
elements should no longer be passed to splitters andForecastingHorizon
, aspandas
has deprecatedfreq
forpd.delta
. Exceptions will be raised in corner cases wherefreq
as not been passed and cannot be inferred.change to public
cutoff
attribute delayed to 0.15.0: publiccutoff
attribute of forecasters will change topd.Index
subtype, from index element.
Time series classification#
The base class of
ProbabilityThresholdEarlyClassifier
will be changed toBaseEarlyClassifier
in 0.15.0. This will change how classification safety decisions are made and returned, seeBaseEarlyClassifier
orTEASER
for the new interface.
Transformations#
The default of
default_fc_parameters
inTSFreshFeatureExtractor
andTSFreshRelevantFeatureExtractor
will change from"efficient"
to"comprehensive"
in 0.15.0.
Testing framework#
The name of the test
test_methods_do_not_change_state
will change totest_non_state_changing_method_contract
in 0.15.0. For a safe transition in a case where the old name has been used as part of an argument incheck_estimator
, use both the new and the old name (in a list) in test/fixture exclusion or inclusion.
Enhancements#
BaseObject#
[ENH]
get_args
default handling for keys not present (#3595) @fkiraly[ENH] improve base class test docstrings and clone test (#3555) @fkiraly
[ENH]
get_fitted_params
for nestedsklearn
components (#3645) @fkiraly[ENH] Serialization and deserialization of estimators (#3336) @fkiraly
[ENH] Serialization and deserialization of deep learning estimators (#3425) @achieveordie
Data loaders#
[ENH] support for
@targetlabel
identifier for.ts
files inload_from_tsfile
(#3436) @achieveordie[ENH] refactor/integrate
_contrib
-datasets
(#3518) @fkiraly
Data types, checks, conversions#
Forecasting#
[ENH] modular/configurable Theta forecaster (#1300) @GuzalBulatova
[ENH] global/local recursive reduction prototype (#3333) @fkiraly
[ENH] extend recursive strategy in
make_reduction
to allow global pooling on panel data (#3451) @danbartl[EHN] Parallelized
evaluate
with{joblib, dask}
(#3511) @topher-lo[ENH] use
statsmodels
append
in_StatsModelsAdapter._update
(#3527) @chillerobscuro[ENH] extend
evaluate
to hierarchical and panel data (#3542) @fkiraly[ENH]
numpy
integer support forColumnEnsembleForecaster
(#3557) @fkiraly[ENH] multivariate test case for
EnsembleForecaster
(#3637) @fkiraly[ENH] extend
ColumnEnsembleForecaster
to allow application of multivariate forecasters (#3504) @fkiraly[ENH] add forecaster test case with string columns (#3506) @fkiraly
[ENH] extend forecasting grid/random search to hierarchical and panel data (#3548) @fkiraly
[ENH] Make
EnsembleForecaster
work with multivariate data (#3623) @AnH0ang[ENH]
ExpandingWindowSplitter
fix forinitial_window=0
and deprecating"start_with_window"
(#3690) @chillerobscuro
Parameter estimation#
Time series annotation#
Time series classification#
[ENH] TapNet DL Model for classification (#3386) @achieveordie
[ENH] refactor/integrate
_contrib
-diagram_code
(#3519) @fkiraly[ENH] fast test parameters for
TapNet
estimators and docstring/interface cleanup (#3544) @achieveordie[ENH] more relevant parameters to
CNNRegressor
for user flexibility (#3561) @achieveordie[ENH] allow
KNeighborsTimeSeriesClassifier
to handle distances between unequal length series (#3654) @fkiraly
Time series regression#
[ENH] TapNet DL Model for regression from
sktime-dl
(#3481) @achieveordie[ENH] allow
KNeighborsTimeSeriesRegressor
to handle distances between unequal length series(#3654) @fkiraly
Transformations#
[ENH] test that
TruncationTransformer
preserves index and column names inpd-multiindex
(#3535) @fkiraly[ENH] replace inplace sort by non-inplace sort in
Reconciler
(#3553) @fkiraly[ENH]
SupervisedIntervals
transformer and cleanednumba
functions (#3622) @MatthewMiddlehurst[ENH]
TSFreshFeatureExtractor
cleanup, tests, and docstring (#3636) @kcc-lion[ENH] Option to fit
Clearsky
transformer in parallel (#3652) @ciaran-g
Testing framework#
Governance#
[GOV] add @GuzalBulatova to CC (#3505) @GuzalBulatova
[GOV] new CC observers role, update to role holders list (#3505) @GuzalBulatova
[GOV] clarifications on algorithm maintainer role (#3676) @fkiraly
Documentation#
[DOC] update docs on releasing conda packages (#3279) @lmmentel
[DOC] Add Format Specification for
.ts
files. (#3380) @achieveordie[DOC]
sklearn
usage examples in classifier notebook (#3523) @MatthewMiddlehurst[DOC] update extension templates and docstrings for
_get_fitted_params
(#3589) @fkiraly[DOC] Replace
sphinx-panels
withsphinx-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_params
in extension templates (#3635) @achieveordie
Maintenance#
[MNT] Bump setup-python action from 2 to 4 (#3577) @lmmentel
[MNT] Remove
ABCMeta
inheritance from_HeterogeneousMetaEstimator
(#3569) @fkiraly[MNT] Replace deprecated
sphinx-panels
withsphinx-design
(#3575) @MatthewMiddlehurst[MNT] temporarily remove stochastically failing tapnet from tests (#3624) @fkiraly
[MNT] replace
ARIMA
used 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_path
is notNone
(#3021) @TonyBagnall[BUG] fix error in writing datasets to file in ts format (#3532) @TonyBagnall
Data types, checks, conversions#
[BUG] fix
pd.concat
in stratified resampling causing error incheck_is_scitype
(#3546) @TonyBagnall[BUG] fix
check_estimator
exclude arguments not working for non-base scitype tests (#3566) @fkiraly[BUG] fix erroneous asserts in input checkers (#3556) @fkiraly
[BUG] Exclude
np.timedelta64
fromis_int
check (#3627) @khrapovs
Forecasting#
[BUG] fix
ConformalIntervals
update does not updateresiduals_matrix
(#3460) @bethrice44[BUG] Fix side effect of
predict_residuals
(#3475) @aiwalter[BUG] Fix residuals formula in
NaiveForecaster.predict_var
for non-nullwindow_length
(#3495) @topher-lo[BUG] fix
ColumnEnsembleForecaster
forstr
index (#3504) @canbooo @fkiraly[BUG] fix conditional
requires-fh-in-fit
tag 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
KNeighborsTimeSeriesClassifier
tag handling dependent on distance component (#3654) @fkiraly[BUG] Add missing
get_test_params
toTapNet
estimators (#3541) @achieveordie[BUG]
numba
/np.median
interaction raises error for large data sets run withn_jobs>1
(#3602) @TonyBagnall[BUG] bug in the interaction between
numba
andnp.zeros
identified 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_tags
call inAggrDist.__init__
(#3562) @aiwalter
Time series regression#
Transformations#
[BUG]
RandomShapeletTransform
: floor the maximum number of shapelets to number of classes (#3564) @TonyBagnall[BUG]
ClearSky
transformer: 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#
sktime
is now compatible withpmdarima 2.0.0
, bound is relaxed to<3.0.0
sktime
is 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
xarray
DataArray
& mtypes (#3255) @benHeid[ENH] avoid metadata computation in
scitype
utility (#3357) @fkiraly[ENH]
check_is_scitype
error message return changed todict
(#3466) @fkiraly[ENH] Optimize
from_3d_numpy_to_nested
converter function (#3339) @paulbauriegel[ENH] simplify
convert_to_scitype
logic, fix export and docstring omissions in scitype converter module (#3358) @fkiraly
Data loaders#
Forecasting#
[ENH]
pmdarima 2.0.0
compatibility fix - use absolute index in return (#3302) @fkiraly[ENH] global/local setting for
DirectReductionForecaster
(#3327) @fkiraly[ENH] consistent
sp
handling in parameter estimators andAutoARIMA
(#3367) @fkiraly[ENH] enable default
get_fitted_params
for 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
fit
andpredict_residuals
for calculation ofresiduals_matrix
inConformalIntervals
(#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]
BaseTransformer
data memory - enabled by tag (#3307) @fkiraly[ENH] Fourier features transformer (#3374) @ltsaprounis
[ENH] prevent vectorization in tramsformer multiplexer (#3391) @fkiraly
[ENH] added
scale
,offset
parameters toLogTransformer
(#3354) @bugslayer-332[ENH]
pandas 1.5.0
compatibility fix: useinfer_freq
inLag
if nofreq
passed 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_window
parameter (#3383) @bethrice44
Time series annotation#
Time series classification#
Transformations#
[BUG] fixes incorrect warning condition in
InvertTransform
(#3352) @fkiraly[BUG] ensure
Differencer
always inverts properly (#3346) @fkiraly, @ilkersigirci
Maintenance#
[MNT] skip
ClearSky
doctest to avoidload_solar
crash (#3376) @fkiraly[MNT] isolate soft dependency in
MLPClassifier
doctest (#3409) @fkiraly[MNT] replaces deprecated
pandas
is_monotonic
byis_monotonic_increasing
(#3455) @fkiraly[MNT] update
test_interpolate
to bepandas 1.5.0
compatible (#3467) @fkiraly
Documentation#
[DOC] updated extension templates - tags explained, soft dependencies (#3334) @fkiraly
[DOC] API reference for
dists_kernels
module (#3312) @fkiraly[DOC] Some tips on getting virtual environments to work (#3331) @miraep8
[DOC] changed wrong docstring default value of
start_with_window
inSlidingWindowSplitter
to 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
BaseSplitter
docstrings (#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:
statsmodels
ARDL
interface (#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_estimator
utility (#3254) @fkiraly
Dependency changes#
pmdarima
is bounded<2.0.0
until compatibility issues are resolved
Core interface changes#
Forecasting#
dunder method for pipelining transformers to exogeneous data:
my_trafo ** my_forecaster
will create aForecastingPipeline
Note:**
has precedence over*
(apply to endogeneous data)the default value for the
ignores-exogeneous-X
tag is set to the safer valueFalse
. This does not affectsktime
forecasters, but may affectsktime
compatible forecasters in which an explicit setting of the tag has been omitted, in thatX
is 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 ** distance
will create aPwTrafoPanelPipeline
, same as “applymy_trafo.fit_transform
to both inputs first, then applydistance
”
Transformations#
dunder method for applying
OptionalPassthrough
:-my_trafo
is the same asOptionalPassthrough(my_trafo)
dunder method for inverting transformer:
~my_trafo
hastransform
andinverse_transform
switched
Deprecations and removals#
Transformations#
deprecated:
transformations.series.compose
is deprecated in favour oftransformations.compose
. All estimators in the former are moved to the latter, and will no longer be accessible intransformations.series.compose
from 0.15.0.deprecated: the row transformers,
SeriesToSeriesRowTransformer
andSeriesToPrimitivesRowTransformer
have been deprecated. Row/instance vectorization functionality is natively supported bysktime
since 0.11.0 and does not need to be added by these wrappers anymore. Both transformers will be removed in 0.15.0. To migrate, simply remove the row transformer wrappers. In some rarer, ambiguous vectorization cases (e.g., using wrapped functions that are vectorized, such asnp.mean
),FunctionTransformer
may have to be used instead ofSeriesToPrimitivesRowTransformer
.
Enhancements#
BaseObject#
Data types, checks, conversions#
Forecasting#
[ENH]
**
dunder for applying transformers to exogeneous data in forecasters (#3243) @fkiraly[ENH] test
pd.Series
with name attribute in forecasters (#3297, #3323) @fkiraly[ENH] set default
ignores-exogeneous-X
toFalse
(#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.compose
in favour oftransformations.compose
(#3271) @fkiraly[ENH] inversion of transformer wrapper and dunder (#3274) @fkiraly
[ENH] correctness test for
OptionalPassthrough
(#3276) @aiwalter[ENH]
OptionalPassthrough
wrapping vianeg
dunder (#3273) @fkiraly[ENH] refactor of
OptionalPassthrough
as a delegator (#3272) @fkiraly
Testing framework#
Governance#
Fixes#
Data sets and data loaders#
[BUG] Fix
write_ndarray_to_tsfile
forclassLabel = 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_freq
private utility for short time series (#3287) @fkiraly
Forecasting#
[BUG] Delay trimming in
ForecastingGridSearchCV until
after transforming (#3132) @miraep8[BUG] Fix tag in
DirectReductionForecaster
(#3257) @KishManani[BUG] ensure that forecasters do not add
pd.Series.name
attribute (#3290) @fkiraly[BUG] removes superfluous
UserWarning
inAutoETS.fit
ifauto=True
andadditive_only=True
#3311 (#3317) @chillerobscuro[BUG] fix
ColumnEnsembleForecaster
for hierarchical input (#3324) @fkiraly[BUG] fix bug where default forecaster
_update
empties 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_reduction
now fully support global/hierarchical forecasting (#2486) @danbartlforecasting metric classes now fully support hierarchical data and hierarchy averaging via
multilevel
argument (#2601) @fkiralyprobabilisitic forecasting functionality for
DynamicFactor
,VAR
andVECM
(#2925, #3105) @AurumnPegasus, @lbventuraupdate
features forAutoARIMA
,BATS
,TBATS
, and forecasting tuners (#3055, #3068, #3086) @fkiraly, @jelc53new transformer:
ClearSky
transformer for solar irradiance time series (#3130) @ciaran-gnew transformer:
Filter
transformer for low/high-pass and band filtering, interfacesmne
filter_data
(#3067) @fkiraly, @sveameyer13
Dependency changes#
new soft dependency
mne
, fromFilter
transformernew developer dependency
pytest-randomly
Core interface changes#
All Estimators#
get_fitted_params
now has a private implementer interface_get_fitted_params
, similar tofit
/_fit
etcthe undocumented
_required_parameters
parameter is no longer required (to be present in certain estimators)
Forecasting#
forecasting metric classes now fully support hierarchical data and hierarchy averaging via
multilevel
argument
Parameter estimation#
new estimator type - parameter estimators, base class
BaseParamFitter
Deprecations and removals#
Time series classification#
ProbabilityThresholdEarlyClassifier
has 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
sktime
datasets (#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-multiindex
togluonts
ListDataset
(#2976) @TNTran92[ENH] add check for non-duplicate indices in
nested_univ
mtype (#3029) @fkiraly[BUG] Remove redundant computations in
datatypes._utilities.get_cutoff
(#3070) @shchur
Forecasting#
[ENH] Reworked
make_reduction
for global forecasting (#2486) @danbartl[ENH] flexible
update
behaviour of forecasting tuners (#3055) @fkiraly[ENH] flexible
update
behaviour ofAutoARIMA
(#3068) @fkiraly[ENH] Reducer prototype rework - experimental (#2833) @fkiraly
[ENH] better
ForecastingHorizon
construction error message (#3236) @fkiraly[ENH] metrics rework part IV - hierarchical metrics (#2601) @fkiraly
[ENH] Reducer prototype rework - experimental (#2833) @fkiraly
[ENH]
predict_interval
capability 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_params
for tuning forecasters (#2975) @ZiyaoWei[MNT] remove custom
__repr__
fromBaseSplitter
(#3048) @fkiraly[ENH]
DynamicFactor
predict_interval
andpredict_quantiles
(#3105) @lbventura[ENH] Added
error_score
toevaluate
and forecasting tuners (#3135) @aiwalter[ENH] Refactor
CutoffSplitter
usingget_window
function (#3145) @khrapovs[ENH] Refactor
SingleWindowSplitter
usingget_window
function (#3146) @khrapovs[ENH] Allow lists to be
cutoff
argument 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
_contrib
to 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_predict
methods and default_predict
(#3038) @fkiraly[ENH] remove unused methods from
ClassifierPipeline
(#3042) @fkiraly[ENH] refactor
RocketClassifier
to pipeline delegate (#3102) @fkiraly[ENH] refactor
Catch22Classifier
to pipeline delegate (#3112) @fkiraly[ENH] deprecate
ProbabilityThresholdEarlyClassifier
(#3133) @MatthewMiddlehurst
Time series regression#
Transformations#
[ENH] refactored
ColumnConcatenator
, rewrite usingpd-multiindex
inner mtype (#2379) @fkiraly[ENH]
__getitem__
aka[ ]
dunder for transformers, column subsetting (#2907) @fkiraly[ENH]
YtoX
transformer to use transform endogeneous data as exogegneous (#2922) @fkiraly[BUG] fixes
RandomIntervalFeatureExtractor
to have unique column names (#3001) @fkiraly[BUG] fix for
Differencer.inverse_transform
not having access to data indexfreq
(#3007) @fkiraly[ENH] Refactor transformers in
_deseasonalize
module (#3040) @fkiraly[ENH] increase stateless scope of
FunctionTransformer
andTabularToSeriesAdaptor
(#3087) @fkiraly[ENH]
ClearSky
transformer for solar irradiance time series (#3130) @ciaran-g[ENH] move simple
ShapeletTransform
from_contrib
totransformations
module (#3136) @fkiraly
Testing framework#
[ENH] test that transformer output columns are unique (#2969) @fkiraly
[ENH] test estimator
fit
without soft dependencies (#3039) @fkiraly[ENH] test all
BaseObject
descendants for sklearn compatibility (#3122) @fkiraly[ENH]
functools
wrapper to preserve docstrings in estimators wrapped bymake_mock_estimator
(#3228) @ltsaprounis[ENH] refactoring test params for
FittedParamExtractor
toget_test_params
(#2995) @mariamjabara[ENH] refactored test params for
ColumnTransformer
(#3008) @kcc-lion[ENH] complete refactor of all remaining test params left in
_config
toget_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
Deseasonalizer
docstring (#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_quantiles
for multivariate data (#3106) @fkiraly[BUG]
ExpandingWindowSplitter
constructorsklearn
conformace fix (#3121) @fkiraly[BUG] fix override/defaulting of “prediction intervals” adders (#3129) @bethrice44
[BUG] fix
check_equal_time_index
with numpy arrays as input (#3160, #3167) @benHeid[BUG] fix broken
AutoEnsembleForecaster
inverse 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_proba
default andSklearnClassifierPipeline
in casepredict_proba
is 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
hcrystalball
fromall_extras
dependency set (#3091) @aiwalter[MNT] add
testdir
to.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
RandomShapeletTransform
from 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
RandomShapeletTransform
from 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#
sktime
is nowpython 3.10
compatible, including the developer suiteall forecasters and transformers can deal with multivariate data, by vectorization (#2864, #2865, #2867, #2937) @fkiraly
BaggingForecaster
for adding forecast intervals via bagging (#2248) @ltsaprounisReconcilerForecaster
with 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.
sktime
now allowsnumpy 1.22
.prophet
soft dependency now must be above 1.1, where it no longer depends onpystan
.indirect soft dependency on
pystan
has been removed.soft dependency on
hcrystalball
has been removed.
Core interface changes#
Data types, checks, conversions#
VectorizedDF
now supports vectorization over columns
Dependency handling#
Python requirements and soft dependencies are now isolated to estimator classes via the
python_version
andpython_dependencies
tags. 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.ForecastingHorizon
now stores frequency information in thefreq
attribute. It can be set in the constructor via the newfreq
argument, 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.Timestamp
carryingfreq
is deprecated and will raise exception from 0.14.0. Use ofpd.Timestamp
will remain possible. This due to deprecation of thefreq
attribute ofpd.Timestamp
inpandas
.from 0.14.0, public
cutoff
attribute of forecasters will change topd.Index
subtype, from index element.removed: class
HCrystalBallForecaster
, see #2677.
Performance metrics#
removed:
func
andname
args from all performance metric constructors.changed: the
greater_is_better
property is replaced by thegreater_is_better
tag.
Time series classification#
removed:
"capability:early_prediction"
tag fromBaseClassifier
descendants. Early classifiers are their own estimator type now. In order to search for early classifiers, use theearly-classifier
scitype string instead of the tag.
Transformations#
removed:
Differencer
-drop_na
argument has been removed. Default ofna_handling
changed tofill_zero
removed:
lag_config
argument inWindowSummarizer
, please uselag_feature
argument instead.
Enhancements#
Data types, checks, conversions#
Forecasting#
[ENH]
BaggingForecaster
for 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]
VECM
forecasting model (#2829) @AurumnPegasus[ENH] addressing
freq
deprecation inForecastingHorizon
(#2932) @khrapovs @fkiraly[ENH] statsmodels
DynamicFactor
interface (#2859) @lbventura @ris-bali[ENH]
ReconcilerForecaster
and hierarchical transformers update (#2940) @ciaran-g[ENH] Avoid accessing
.freq
frompd.Timestamp
by convertingcutoff
topd.Index
(#2965) @khrapovs[ENH] add check for forecast to have correct columns (#2972) @fkiraly
Transformations#
Fixes#
Data loaders#
[BUG]
load_UCR_UEA_dataset
checks 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
score
function inBaseGridSearch
(#2752) @fkiraly[BUG] fix
Prophet
to have correct output column names (#2973) @fkiraly[BUG] fixing grid/random search broken delegation (#2945) @fkiraly
[BUG] forecaster vectorization for
update
and 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
all
modules to automatic retrieval (#2845) @fkiraly[MNT] Upgrade
prophet
to >=1.1 and removepystan
fromall_extras
dependencies (#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
numpy
version bound to<=1.22
(#2979) @jlopezpena[MNT] set number of
pytest-xdist
workers toauto
(#2992) @fkiraly
Documentation#
[DOC] updated forecasting tutorial with multivariate vectorization (#3000) @fkiraly
[DOC] add
_is_vectorized
to forecaster extension template exclusion list (#2878) @fkiraly[DOC] replace
AyushmaanSeth
name with GitHub ID (#2911) @fkiraly[DOC] Added docstrings code showing example of using
metrics
withevaluate
(#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.1
due tocmdstanpy
incompatibility
Core interface changes#
BaseObject#
Enhancements#
BaseObject#
Forecasting#
Transformations#
Fixes#
Forecasting#
[BUG] fixed forecasters not updating
cutoff
when in vectorization mode (#2870) @fkiraly[BUG] Fixing type conversion bug for probabilistic interval wrappers
NaiveVariance
andConformalInterval
(#2815) @bethrice44[BUG] fix
Lag
transformer whennumpy.int
was passed as lag integers (#2832) @fkiraly[ENH] fix
get_window
utility whenwindow_length
wasNone
(#2866) @fkiraly
Transformations#
Documentation#
[DOC] add missing
TonyBagnall
to 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
TonyBagnall
from CC (#2794) @fkiraly[DOC] Added
diviner
by Databricks andstatsforecast
by 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-dl
intosktime
(#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:
pykalman
andfilterpy
(for Kalman filter transformers)
Core interface changes#
BaseObject#
Forecasting#
Performance metrics#
performance metrics have a new base class design and inheritance structure. See
BaseForecastingErrorMetric
docstring 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_index
andtime_index
args fromfrom_multi_index_to_3d_numpy
. Useconvert
orconvert_to
instead.
Forecasting#
removed: tag
fit-in-predict
, now subsumed underfit_is_empty
deprecated:
HCrystalBallForecaster
, will be removed in 0.13.0. See #2677.
Performance metrics#
changed: set
symmetric
hyper-parameter default toTrue
in all relative performance metrics.deprecated:
func
andname
args 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 havefunc
andname
as constructor arguments.deprecated: the
greater_is_better
property will be replaced by thegreater_is_better
tag, in 0.13.0. Until then, implementers should set thegreater_is_better
tag. Users can still call thegreater_is_better
property until 0.13.0, which will alias thegreater_is_better
tag, if set.
Time series classification#
deprecated:
"capability:early_prediction"
will be removed in 0.13.0 fromBaseClassifier
descendants. Early classifiers should inherit from the learning task specific base classBaseEarlyClassifier
instead.
Transformations#
removed: tag
fit-in-transform
, now subsumed underfit_is_empty
removed:
FeatureUnion
’spreserve_dataframe
parameterremoved:
series_as_features.compose
module, contents are intransformations.compose
removed:
transformations.series.window_summarize
module, contents are intransformations.series.summarize
changed:
"drift"
,"mean"
,"median"
,"random"
methods ofImputer
now use the training set (fit
arguments) to compute parameters. For pre-0.12.0 behaviour, i.e., using thetransform
set, wrap theImputer
in theFitInTransform
compositor.
Enhancements#
BaseObject#
Data types, checks, conversions#
[ENH] Add support to
get_slice
for 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]
BaseSplitter
extension: 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
ExpandingWindowSplitter
as 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_estimator
passing constructor args for the mocked class (#2686) @ltsaprounis[ENH]
test_update_predict_predicted_index
for continuous data (#2701) @ltsaprounis[ENH] interface compliance test to ensure sklearn compliance of constructor (#2732) @fkiraly
[ENH]
check_estimators
to 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
TestAllEstimators
as 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_predict
arg default and docstring oncv
arg (#2589) @aiwalter[BUG] Fix
Prophet
with logistic growth #1079 (#2609) @k1m190r[BUG]
ignores-exogeneous-X
tag correction forUnobservedComponents
(#2666) @fkiraly[BUG] fixed
StackingForecaster
for exogeneous data (#2667) @fkiraly[BUG] fixed
pmdarima
interface index handling ifX
index set is strictly larger thany
index set (#2673) @fkiraly[BUG] Fix duration to
int
coercion forpd.tseries.offsets.BaseOffset
(#2726) @khrapovs[BUG] fixed overlap in
NaiveVariance
train/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_kwargs
inARIMA
andAutoARIMA
being 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]
TransformerPipeline
fix for vectorization edge cases and sklearn transformers (#2644) @fkiraly[BUG]
SummaryTransformer
multivariate 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
squeeze
with the method .squeeze(“columns”) in pd.read_csv (#2693) @khrapovs[MNT] Replace
pandas.DataFrame.append
withpandas.concat
to address future deprecation (#2723) @khrapovs[MNT] Removed redundant
todo
fromtransformer_simple
extension template (#2740) @NoaBenAmi[MNT] Address various future warnings from
pandas
andnumpy
(#2725) @khrapovs[MNT] remove accidental
codecov
overwrite 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
TimeSeriesForestClassifier
fromkernel_based
tointerval_based
inget_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.0
release
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#
sktime
is now compatible withscipy 1.8.X
versions (#2468, #2474) @fkiralydunder method for forecasting pipelines: write
trafo * forecaster * my_postproc
forTransformedTargetForecaster
pipeline (#2404) @fkiralydunder method for multiplexing/autoML: write
forecaster1 | forecaster2 | forecaster3
forMultiplexForecaster
, used in tuning over forecasters (#2540) @miraep8dunders combine with existing transformer pipeline and feature union, e.g.,
trafo1 * trafo2 * forecaster
or(trafo1 + trafo2) * forecaster
prediction intervals for
UnobservedComponents
forecaster (#2454) @juanitorduznew argument
return_tags
ofall_estimators
allows listing estimators together with selected tags (#2410) @miraep8
Dependency changes#
Upper bound on
scipy
relaxed toscipy<1.9.0
,sktime
is now compatible withscipy 1.8.X
versions.
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 classMultiplexForecaster
which 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
UnobservedComponents
forecaster (#2454) @juanitorduz[ENH] remove error message on exogeneous
X
from DirRec reducer (#2463) @fkiraly[ENH] replace
np.arange
bynp.arghwere
in splitters to enable time based indexing and selection (#2394) @khrapovs[ENH] Test
SingleWindowSplitter
with Timedelta forecasting horizon (#2392) @khrapovs[ENH]
Aggregator
: remove index naming requirement (#2479) @ciaran-g[ENH]
MultiplexForecaster
compatibility with multivariate, probabilistic and hierarchical forecasting (#2458) @fkiraly[ENH]
Differencer
NA handling - “fill zero” parameter (#2487) @fkiraly[ENH] Add
random_state
tostatsmodels
adapter 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_cutoff
and bugfix, outerupdate_predict_single
should be called (#2466) @fkiraly[BUG] fix
ThetaForecaster.predict_quantiles
breaking onpd.DataFrame
input (#2529) @fkiraly[BUG] bugfix for default
_predict_var
implementation (#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_predict
state 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-transform
tofit_is_empty
(#2494) @fkiraly[ENH] Legacy test refactor - move
test_data_processing
, mtype handling intest_classifier_output
(#2506) @fkiraly[ENH]
MockForecaster
without logging,MockUnivariateForecaster
clean-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_cutoff
refactor (#2470) @fkiraly
Maintenance#
[MNT] upgrade codecov uploader and cleanup coverage reporting (#2389) @tarpas
[MNT] fix soft dependency handling for
esig
imports (#2414) @fkiraly[MNT] Make the contrib module private (#2422) @MatthewMiddlehurst
[MNT] disabling aggressive
dtw_python
import message (#2439) @KatieBuc[MNT] loosen strict upper bound on
scipy
to 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_estimator
failures (#2411) @danbartl[MNT] added
pytest-timeout
time 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
gfortran
FileNotFoundError
in all CI/CD (#2561) @fkiraly[MNT] Add a script to generate changelog in
rst
format (#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-multiindex
mtype 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
fit
parameters toVAR
constructor #1850 (#2304) @TNTran92[ENH] vectorization for probabilistic forecasting methods that return
pd.DataFrame
(#2355) @fkiraly[ENH] adding compatibility with probabilistic and hierarchical forecasts to
ForecastingPipeline
andTransformedTargetForecaster
(#2318) @fkiraly[ENH] Allow
pd.Timedelta
values 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_predict
use) 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_estimators
estimator 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
statsmodels
SARIMAX
(#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.Int64Index
due 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_estimator
failure (#2405) @danbartl
Refactored#
[ENH] remove non-compliant
fit_params
kwargs 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
TestAllForecasters
class (#2311) @fkiraly[ENH] upgrade
BasePairwiseTransformer
to use datatypes input conversions and checks (#2363) @fkiraly[ENH] extend
_HeterogeneousMetaEstimator
estimator to allow mixed tuple/estimator list (#2406) @fkiraly[MNT] test parameter refactor: forecasting reducers and
ColumnEnsembleClassifier
(#2223) @fkiraly[ENH] refactoring
test_all_transformers
to test class architecture (#2252) @fkiraly
Fixes#
Forecasting#
Transformations#
[BUG]
TSInterpolator
andnested_univ
check fix (#2259) @fkiraly[BUG][ENH] WindowSummarizer offset fix, easier lag specification (#2316) @danbartl
[BUG]
FeatureUnion
output column names fixed (#2324) @fkiraly[ENH][BUG] fixes and implementations of missing
inverse_transform
in 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_trafo2
for pipeline,my_trafo1 + my_trafo2
forFeatureUnion
(#2090, #2251) @fkiralyFrequently requested:
AutoARIMA
fromstatsforecast
package available asStatsforecastAutoARIMA
(#2251) @FedericoGarzafor extenders: detailed “creating sktime compatible estimator” guide
for extenders: simplified extension templates for forecasters and transformers (#2161) @fkiraly
Dependency changes#
sktime
has a new optional dependency set for deep learning, consisting oftensorflow
andtensorflow-probability
new soft dependency:
tslearn
(required fortslearn
clusterers)new soft dependency:
statsforecast
(required forStatsforecastAutoARIMA
)
Core interface changes#
Data types, checks, conversions#
new
Hierarchical
scientific type for hierarchical time series data, with mtype formatpd_multiindex_hier
(row-multiindexed series)new
Table
scientific type for “ordinary” tabular (2D data frame like) data which is not time series or sequentialmultiple mtype formats for the
Table
scientific type:numpy1D
,numpy2D
,pd_DataFrame_Table
,pd_Series_Table
,list_of_dict
new
Proba
scientific type for distributions and distribution like objects (used in probabilistic forecasting)
Forecasting#
forecasters now also accept inputs of
Panel
type (panel and global forecasters) andHierarchical
type (hierarchical forecasters)when a forecaster is given
Panel
orHierarchical
input, and onlySeries
logic is defined, the forecaster will automatically loop over (series) instanceswhen a forecaster is given
Hierarchical
input, and onlyPanel
orSeries
logic 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, returnstensorflow
Distribution
Time series classification#
dunder method for pipelining classifier and transformers:
my_trafo1 * my_trafo2 * my_clf
will create aClassifierPipeline
(sklearn
compatible)
Transformations#
transformers now also accept inputs of
Panel
type (panel and global transformers) andHierarchical
type (hierarchical transformers)when a transformer is given
Panel
orHierarchical
input, and onlySeries
logic is defined, the transformer will automatically loop over (series) instanceswhen a transformer is given
Hierarchical
input, and onlyPanel
orSeries
logic is defined, the transformer will automatically loop over (panel) instancesTable
scientific type is used as output of transformers returning “primitives”dunder method for pipelining transformers:
my_trafo1 * my_trafo2 * my_trafo3
will create a (single)TransformerPipeline
(sklearn
compatible)dunder method for
FeatureUnion
of transformers:my_trafo1 + my_trafo2 + my_trafo3
will create a (single)FeatureUnion
(sklearn
compatible)transformer dunder pipeline is compatible with
sklearn
transformers, automatically wrapped in aTabularToSeriesAdaptor
Deprecations and removals#
Data types, checks, conversions#
Forecasting#
removed:
return_pred_int
argument in forecasterpredict
,fit_predict
,update_predict_single
. Replaced bypredict_interval
andpredict_quantiles
interface.deprecated:
fit-in-predict
tag is deprecated and renamed tofit_is_empty
. Old tagfit-in-predict
can be used until 0.12.0 when it will be removed.deprecated: forecasting metrics
symmetric
argument default will be changed toFalse
in 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-transform
tag is deprecated and renamed tofit_is_empty
. Old tagfit-in-transform
can be used until 0.12.0 when it will be removed.deprecated: old location in
series_as_features
ofFeatureUnion
, has moved totransformations.compose
. Old location is still importable from until 0.12.0.deprecated:
preserve_dataframe
argument ofFeatureUnion
, will be removed in 0.12.0.deprecated: old location in
transformations.series.windows_summarizer
ofWindowSummarizer
, 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]
tslearn
added 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
AutoARIMA
from StatsForecast (#2251) @FedericoGarza[ENH] Naive variance prediction estimator/wrapper (#1865) @IlyasMoutawwakil
[ENH]
predict_proba
for forecasters, tensorflow-probability dependency (#2100) @fkiraly[ENH] Probabilistic forecasting metrics (#2232) @eenticott-shell
[ENH]
_predict_fixed_cutoff
forHierarchical
data (#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_type
tag (#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
BaseTransformer
to use vectorization utility, hierarchical mtype compatibility (#2219) @fkiraly[ENH]
WindowSummarizer
to 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_hierachical
is 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-X
tag for forecasting reducers (#2230) @fkiraly[BUG] fixing
STLBootstrapTransformer
error 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_var
docstring (#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.isnan
bypd.isnull
indatatypes
(#2220) @fkiraly[ENH] renamed
fit-in-transform
andfit-in-predict
tofit_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]
FeatureUnion
refactor - moved totransformations
, tags, dunder method (#2231) @fkiraly[ENH]
AutoARIMA
fromstatsforecast
toStatsForecastAutoARIMA
(#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.0
to prevent bugs due to interface changes inscipy
.Once
sktime
is compatible withscipy 1.8.0
, the upper bound will be relaxedNew transformer: lagged window summarizer transformation (#1924) @danbartl
Loaders for
.tsf
data format (#1934) @rakshitha123
Dependency changes#
Introduction of bound
scipy<1.8.0
, to prevent bugs due to interface changes inscipy
Once
sktime
is 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
.tsf
data format (#1934) @rakshitha123[ENH] Added
.tsf
dataset 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.str
andnp.float
(#1997) @fkiraly[MNT] Remove
pytest-xdist
from 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
linux
andmac
tests (#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_univ
topd-multiindex
mtype if series have names (#2000) @fkiraly[BUG]
MiniRocket
to comply with sklearn init specification, fixrandom_state
modification 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#
sktime
now supports python 3.7-3.9. Python 3.6 is no longer supported, due to end of life. Lastsktime
version to support python 3.6 was 0.9.0.sktime
now supports, and requires,numpy>=1.21.0
andstatsmodels>=0.12.1
overhaul of docs for installation and first-time developers (#1707) @amrith-shell
all probabilistic forecasters now provide
predict_interval
andpredict_quantiles
interfaces (#1842, #1874, #1879, #1910, #1961) @fkiraly @k1m190r @kejsitakenew transformation based pipeline classifiers (#1721) @MatthewMiddlehurst
developer install for
sktime
no longer requires C compilers andcython
(#1761, #1847, #1932, #1927) @TonyBagnallCI/CD moved completely to GitHub actions (#1620, #1920) @lmmentel
Dependency changes#
sktime
now supportspython
3.7-3.9 on windows, mac, and unix-based systemssktime
now supports, and requires,numpy>=1.21.0
andstatsmodels>=0.12.1
sktime
Prophet
interface now usesprophet
instead of deprecatedfbprophet
developer install for
sktime
no 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_int
tagnew method
predict_interval(fh, X, coverage)
for interval forecastsnew method
predict_quantiles(fh, X, alpha)
for quantile forecastsboth vectorized in
coverage
,alpha
and applicable to multivariate forecastingold
return_pred_int
interface 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
fh
is not passed, in-sample residuals are computed
Transformations#
Base interface refactor rolled out to series transformers (#1790, #1795):
fit
,transform
,fit_transform
now accept bothSeries
andPanel
as argumentif
Panel
is 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) aliasesX
until 0.11.0 in series transformers, will then be removedX
(former second argument) was not used in those transformers, was changed toy
see 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_int
argument in forecasterpredict
,fit_predict
,update_predict_single
. Replaced bypredict_interval
andpredict_quantiles
interface.
Time series classification#
Removed:
MrSEQL
time series classifier (#1548) @TonyBagnallRemoved
RISF
and shapelet classifier (#1907) @TonyBagnalldata.io
module moved to datasets (#1907) @TonyBagnall
Transformations#
Added#
Documentation#
[DOC] updates to forecaster and transformer extension template (#1774, #1853) @fkiraly
[DOC] updated
get_test_params
extension 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
convert
module (#1745) @fkiraly[ENH] experimental: hierarchical time series scitype hierarchical_scitype (#1786) @fkiraly
[ENH] upgraded
mtype_to_scitype
to 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]
fit
repeated initialization in Lloyd’s algorithm (#1897) @chrisholder
Distances, kernels#
Forecasting#
[ENH] Scaled Logit Transformer (#1913, #1965) @ltsaprounis.
[ENH] add
fit
parameters to statsmodels Holt-Winters exponential smoothing interface (#1849) @fkiraly[ENH] Add
predict_quantiles
to FBprophet (#1910) @kejsitake[ENH] Add
`predict_quantiles
to ets, pmdarima adapter (#1874) @kejsitake[ENH] Defaults for
_predict_interval
and_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_fh
to a_check_fh
that 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]
FreshPRINCE
params moved from _config into estimator (#1944) @fkiraly[ENH] user selected return for classification problems data loading functions (#1799) @tonybagnall
[ENH] TSC refactor:
compose
sub-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_names
fixture 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_absolute
for 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_interval
andpredict_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.Series
in 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_params
access 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.ndarray
by conversion to 3D rather than throwing exception (#1604) @TonyBagnall
Transformations#
Base interface refactor (#1365, #1663, #1706):
fit
,transform
,fit_transform
now accept bothSeries
andPanel
as argumentif
Panel
is 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
convert
and_split
for 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_interval
andpredict_quantiles
(#1421) @SveaMeyer13experimental interface for time series segmentation (#1352) @patrickzib
New deprecations for 0.10.0#
Forecasting#
current prediction intervals interface in
predict
viareturn_pred_int
will be deprecated and replaced by the new interface pointspredict_interval
andpredict_quantiles
Core interface changes#
Forecasting#
new interface points for probabilistic forecasting,
predict_interval
andpredict_quantiles
(#1421) @SveaMeyer13changed forecasting
univariate-only
tag 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:
_muse
classifier (#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
NaiveForecaster
was 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-forge
metapackage 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_estimators
andregistry.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_tag
andget_tags
interfacelist all tags applying to an estimator type by
registry/all_tags
list 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
_convert
files indatatypes
will no longer be publicly accessible in 0.10.0
Forecasting#
Forecasters can now be passed
pd.DataFrame
,pd.Series
,np.ndarray
asX
ory
, and return forecasts of the same type as passed fory
sktime
now 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 @GuzalBulatovaUnobservedComponents
statsmodels
wrapper (#1394) @juanitorduzTrendForecaster
(usingsklearn
regressor for value vs time index) (#1209) @tensorflow-as-tfProphet custom seasonalities (#1378) @IlyasMoutawwakil
Extend aggregation functionality in
EnsembleForecaster
(#1190) @GuzalBulatovaAdded
n_best_forecasters
summary to grid searches (#1139) @aiwalterForecastingHorizon
supporting more input types,is_relative
detection 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]
NaiveForecaster
behaviour fix for trailing NaN values (#1130) @Flix6x[BUG] Fix
all_estimators
when 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_tags
call inBaseObject.clone_tags
used 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
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:
Pipeline
andGridSearchCV
HomogeneousColumnEnsembleClassifier
in favour of more flexibleColumnEnsembleClassifier
Fixed#
Deprecation and future warnings from scikit-learn
User warnings from statsmodels