Zurück zu den Modellen
Classifier

ClassifierPipeline

Pipeline of transformers and a classifier.

The ClassifierPipeline compositor chains transformers and a single classifier. The pipeline is constructed with a list of sktime transformers, plus a classifier,

i.e., estimators following the BaseTransformer resp BaseClassifier interface.

The transformer list can be unnamed - a simple list of transformers -

or string named - a list of pairs of string, estimator.

For a list of transformers trafo1, trafo2, …, trafoN and a classifier clf,

the pipeline behaves as follows:

fit(X, y) - changes styte by running trafo1.fit_transform on X,

them trafo2.fit_transform on the output of trafo1.fit_transform, etc sequentially, with trafo[i] receiving the output of trafo[i-1], and then running clf.fit with X being the output of trafo[N], and y identical with the input to self.fit

predict(X) - result is of executing trafo1.transform, trafo2.transform, etc

with trafo[i].transform input = output of trafo[i-1].transform, then running clf.predict on the output of trafoN.transform, and returning the output of clf.predict

predict_proba(X) - result is of executing trafo1.transform, trafo2.transform,

etc, with trafo[i].transform input = output of trafo[i-1].transform, then running clf.predict_proba on the output of trafoN.transform, and returning the output of clf.predict_proba

get_params, set_params uses sklearn compatible nesting interface

if list is unnamed, names are generated as names of classes if names are non-unique, f"_{str(i)}" is appended to each name string

where i is the total count of occurrence of a non-unique string inside the list of names leading up to it (inclusive)

ClassifierPipeline can also be created by using the magic multiplication
on any classifier, i.e., if my_clf inherits from BaseClassifier,

and my_trafo1, my_trafo2 inherit from BaseTransformer, then, for instance, my_trafo1 * my_trafo2 * my_clf will result in the same object as obtained from the constructor ClassifierPipeline(classifier=my_clf, transformers=[my_trafo1, my_trafo2])

magic multiplication can also be used with (str, transformer) pairs,

as long as one element in the chain is a transformer

Schnellstart

python
from sktime.classification.compose import ClassifierPipeline

estimator = ClassifierPipeline(classifier, transformers)

Parameter(2)

classifiersktime classifier, i.e., estimator inheriting from BaseClassifier

this is a “blueprint” classifier, state does not change when fit is called

transformerslist of sktime transformers, or

list of tuples (str, transformer) of sktime transformers these are “blueprint” transformers, states do not change when fit is called

Beispiele

>>> from sktime.transformations.pca import PCATransformer
>>> from sktime.classification.interval_based import TimeSeriesForestClassifier
>>> from sktime.datasets import load_unit_test
>>> from sktime.classification.compose import ClassifierPipeline
>>> X_train, y_train = load_unit_test (split = "train")
>>> X_test, y_test = load_unit_test (split = "test")
>>> pipeline = ClassifierPipeline (
... TimeSeriesForestClassifier (n_estimators = 5), [PCATransformer ()]
... )
>>> pipeline. fit (X_train, y_train) ClassifierPipeline(
... )
>>> y_pred = pipeline. predict (X_test) Alternative construction via dunder method:
>>> pipeline = PCATransformer () * TimeSeriesForestClassifier (n_estimators = 5)