Finding estimators#
sktime ships hundreds of estimators, and which ones you can use depends on
the data you have and the packages you have installed. The registry command
group answers both questions from the shell.
List the object categories#
sktime groups objects by scitype, which is its word for the kind of thing an
object is: forecaster, classifier, transformer, splitter, and about 20
more. To list them with live object counts, use registry types:
sktime-cli registry types
scitype description count
aligner time series aligner or sequence aligner 7
catalogue catalogue of datasets, estimators, cv splitters, and metrics. 9
classifier time series classifier 77
clusterer time series clusterer 10
dataset dataset object 21
detector detector - anomalies, outliers, change points 28
forecaster time series forecaster 153
metric performance metric 46
regressor time series regressor 30
splitter time series splitter 15
transformer time series transformer 150
...
25 result(s)
The counts come from the registry in your environment, so they move with your sktime version.
Use a scitype from this list as the first argument to registry search and
registry tags.
Search the registry#
registry search takes an optional scitype and filters the registry:
sktime-cli registry search forecaster
name scitypes module installable
ARARForecaster ["forecaster"] sktime.forecasting.arar._arar_for… true
ARCH ["forecaster"] sktime.forecasting.arch._uarch false
ARDL ["forecaster"] sktime.forecasting.ardl true
ARIMA ["forecaster"] sktime.forecasting.arima._pmdarima false
ArpsExponential ["forecaster"] sktime.forecasting.arps_dca true
ArpsHarmonic ["forecaster"] sktime.forecasting.arps_dca true
ArpsHyperbolic ["forecaster"] sktime.forecasting.arps_dca true
AuroraForecaster ["forecaster"] sktime.forecasting.aurora false
AutoARIMA ["forecaster"] sktime.forecasting.arima._pmdarima false
AutoETS ["forecaster"] sktime.forecasting.ets true
...
153 result(s)
Read the installable column first: false means the estimator exists but
needs packages you don’t have.
The first search crawls sktime’s registry, which takes a few seconds, and writes the result to a disk cache. Later searches read the cache. For details on how the cache is keyed and when it rebuilds, see Design.
Filter by capability tag#
Tags describe what an estimator can do. Pass -t KEY=VALUE to keep only the
objects that carry a tag:
sktime-cli registry search forecaster -t capability:missing_values=true
name scitypes module installable
ARIMA ["forecaster"] sktime.forecasting.arima._pmdarima false
AutoARIMA ["forecaster"] sktime.forecasting.arima._pmdarima false
AutoETS ["forecaster"] sktime.forecasting.ets true
BaggingForecaster ["forecaster"] sktime.forecasting.compose._baggi… true
DirRecTabularRegressionForecaster ["forecaster"] sktime.forecasting.compose._reduce true
DirRecTimeSeriesRegressionForeca… ["forecaster"] sktime.forecasting.compose._reduce true
DirectTabularRegressionForecaster ["forecaster"] sktime.forecasting.compose._reduce true
DirectTimeSeriesRegressionForeca… ["forecaster"] sktime.forecasting.compose._reduce true
DoubleMLForecaster ["forecaster"] sktime.forecasting.causal._dmlf true
DynamicFactor ["forecaster"] sktime.forecasting.dynamic_factor true
...
29 result(s)
Repeating -t combines the filters with AND. A comma inside a value combines
that value’s alternatives with OR:
sktime-cli registry search forecaster \
-t capability:missing_values=true \
-t capability:insample=true
name scitypes module installable
ARIMA ["forecaster"] sktime.forecasting.arima._pmdarima false
AutoARIMA ["forecaster"] sktime.forecasting.arima._pmdarima false
AutoETS ["forecaster"] sktime.forecasting.ets true
BaggingForecaster ["forecaster"] sktime.forecasting.compose._baggi… true
DoubleMLForecaster ["forecaster"] sktime.forecasting.causal._dmlf true
FallbackForecaster ["forecaster"] sktime.forecasting.compose._fallb… true
FhPlexForecaster ["forecaster"] sktime.forecasting.compose._fhplex true
ForecastByLevel ["forecaster"] sktime.forecasting.compose._group… true
ForecastX ["forecaster"] sktime.forecasting.compose._pipel… true
ForecastingPipeline ["forecaster"] sktime.forecasting.compose._pipel… true
...
18 result(s)
This search keeps forecasters that handle missing values and can also predict in-sample. Tags are specific to a scitype: filtering on one that no object of that kind carries is an error, not an empty result, so a typo says so.
To list the tags that apply to a scitype, along with their types and
descriptions, use registry tags:
sktime-cli registry tags forecaster
name scitype type description
X-y-must-have-same-ind… ["forecaster", bool do X/y in fit/update
"regressor", and X/fh in predict
"transformer"] have to be same
indices?
X_inner_mtype estimator ('list', 'str') which machine type(s)
is the internal
_fit/_predict able to
deal with?
...
The type column says what a filter value must look like. Most capability
tags are bool, so -t capability:insample=true is the common shape.
Filter by name#
-n matches a substring of the object name, without regard to case:
sktime-cli registry search classifier -n rocket
name scitypes module installable
RocketClassifier ["classifier"] sktime.classification.kernel_based._rocket_classif… false
1 result(s)
--exclude NAME drops objects by exact name, and is repeatable.
Filter by what you can run#
Many estimators need packages that sktime doesn’t install. To keep only the
ones whose dependencies are already present, use --installable-only:
sktime-cli registry search classifier --installable-only
name scitypes module installable
BaggingClassifier ["classifier"] sktime.classification.ensemble._… true
ClassifierPipeline ["classifier"] sktime.classification.compose._p… true
ColumnEnsembleClassifier ["classifier"] sktime.classification.compose._c… true
ComposableTimeSeriesForestClassif… ["classifier"] sktime.classification.ensemble._… true
DummyClassifier ["classifier"] sktime.classification.dummy._dum… true
ElasticEnsemble ["classifier"] sktime.classification.distance_b… true
KNeighborsTimeSeriesClassifier ["classifier"] sktime.classification.distance_b… true
MatrixProfileClassifier ["classifier"] sktime.classification.feature_ba… true
...
20 result(s)
20 of sktime’s 77 classifiers, in an environment with no optional classification dependencies. Your count depends on what you have installed.
Without the flag, results carry an installable column. A false value tells
you an estimator exists but needs more packages, and registry describe names
them.
Shape the output#
--with-tags adds tags as extra columns, which is useful when you want to
compare candidates on one capability:
sktime-cli registry search forecaster \
-t capability:missing_values=true \
--with-tags "capability:pred_int,capability:insample" \
--limit 10
name scitypes module installable capability:pre… capability:insa…
ARIMA ["forecaster"] sktime.forecast… false true true
AutoARIMA ["forecaster"] sktime.forecast… false true true
AutoETS ["forecaster"] sktime.forecast… true true true
BaggingForecast… ["forecaster"] sktime.forecast… true true true
DirRecTabularRe… ["forecaster"] sktime.forecast… true true false
DirRecTimeSerie… ["forecaster"] sktime.forecast… true true false
DirectTabularRe… ["forecaster"] sktime.forecast… true true false
DirectTimeSerie… ["forecaster"] sktime.forecast… true true false
DoubleMLForecas… ["forecaster"] sktime.forecast… true true true
DynamicFactor ["forecaster"] sktime.forecast… true true false
10 result(s)
--limit N caps the number of results.
Describe one estimator#
registry describe reports the parameters, defaults, tags, dependencies, and
docstring summary for one object:
sktime-cli registry describe NaiveForecaster
name NaiveForecaster
module sktime.forecasting.naive._naive
scitypes ["forecaster"]
installable true
python_dependencies []
params {"sp": {"default": "1", "required": false}, "strategy": {"default": "'last'",
"required": false}, "window_length": {"default": "None", "required": false}}
tags {"python_version": null, "python_dependencies": null, "env_marker": null,
"sktime_version": "1.1.0", "property:randomness": "deterministic",
...
"capability:insample": true, "capability:pred_int": true,
"capability:missing_values": true, "y_inner_mtype": "pd.Series", ...}
summary Forecast based on naive assumptions about past trends continuing.
In JSON output, params maps each parameter name to its default and whether
it’s required, which is what you need to build a spec string:
sktime-cli registry describe NaiveForecaster --json | jq '.params'
{
"sp": {
"default": "1",
"required": false
},
"strategy": {
"default": "'last'",
"required": false
},
"window_length": {
"default": "None",
"required": false
}
}
That is enough to write "NaiveForecaster(sp=12, strategy='last')" without
opening sktime’s API docs.
Two flags change what the command does:
--test-paramsIncludes the example parameter sets from the estimator’s
get_test_paramsmethod. These are known-good configurations, so they make good starting points.--no-docSkips the docstring. The docstring is the only part that requires importing the estimator’s module, so this flag makes
describefaster and lets it work when the estimator’s dependencies are missing.
When an estimator isn’t installable, describe adds a hint field with the
install command:
sktime-cli registry describe AutoARIMA --json | jq -r '.hint'
uv pip install "pmdarima"
Use what you found#
The name field from a search is the name you put in a spec string:
sktime-cli run fit "NaiveForecaster(sp=12)" --data airline --model-out model.zip
For how spec strings resolve names and how to compose them, see Fitting and evaluating models.