Transformer
TSFreshFeatureExtractor
Transformer for extracting time series features via tsfresh.extract_features.
Quickstart
python
from sktime.transformations.tsfresh import TSFreshFeatureExtractor
estimator = TSFreshFeatureExtractor(default_fc_parameters='efficient', kind_to_fc_parameters=None, chunksize=None, n_jobs=1, show_warnings=True, disable_progressbar=False, impute_function=None, profiling=None, profiling_filename=None, profiling_sorting=None, distributor=None)Parameters(11)
- default_fc_parametersstr, FCParameters object or None,
- default=None = tsfresh default = “comprehensive” Specifies pre-defined feature sets to be extracted If str, should be in [“minimal”, “efficient”, “comprehensive”] See [3] for more details.
- kind_to_fc_parameterslist or None, default=None
- List containing strings specifying selected features to be extracted. The naming convention from tsfresh applies, i.e. the strings should be structured as: {time_series_name}__{feature_name}__{param name 1}_ {param value 1}__[..]__{param name k}_{param value k}. See [2] for more details and [4] for viable options. Either default_fc_parameters or kind_to_fc_parameters should be passed. If both are passed, only features specified in kind_to_fc_parameters are extracted. If neither is passed, it calculates the “comprehensive” feature set.
- n_jobsint, default=1
- The number of processes to use for parallelization. If zero, no parallelization is used.
- chunksizeNone or int, default=None
- The size of one chunk that is submitted to the worker process for the parallelisation. Where one chunk is defined as a singular time series for one id and one kind. If you set the chunksize to 10, then it means that one task is to calculate all features for 10 time series. If it is set it to None, depending on distributor, heuristics are used to find the optimal chunksize. If you get out of memory exceptions, you can try it with the dask distributor and a smaller chunksize.
- show_warningsbool, default=True
- Show warnings during the feature extraction (needed for debugging of calculators).
- disable_progressbarbool, default=False
- Do not show a progressbar while doing the calculation.
- impute_functionNone or Callable, default=None
- None, if no imputing should happen or the function to call for imputing the result dataframe. Imputing will never happen on the input data.
- profilingbool, default=None
- Turn on profiling during feature extraction.
- profiling_sortingbasestring, default=None
- How to sort the profiling results (see the documentation of the tsfresh profiling package for more information).
- profiling_filenamebasestring, default=None
- Where to save the profiling results.
- distributordistributor class, default=None
- Advanced parameter: class to use as a distributor. See the tsfresh package utilities/distribution.py for more information. The default=None has the tsfresh default implementation choose the distributor.
Examples
>>> from sklearn.model_selection import train_test_split
>>> from sktime.datasets import load_arrow_head
>>> from sktime.transformations.tsfresh import TSFreshFeatureExtractor
>>> X, y = load_arrow_head (return_X_y = True)
>>> X_train, X_test, y_train, y_test = train_test_split (X, y)
>>> ts_eff = TSFreshFeatureExtractor (
... default_fc_parameters = "efficient", disable_progressbar = True
... )
>>> X_transform1 = ts_eff. fit_transform (X_train)
>>> features_to_calc = [
... "dim_0__quantile__q_0.6",
... "dim_0__longest_strike_above_mean",
... "dim_0__variance",
... ]
>>> ts_custom = TSFreshFeatureExtractor (
... kind_to_fc_parameters = features_to_calc, disable_progressbar = True
... )
>>> X_transform2 = ts_custom. fit_transform (X_train)References
- [1 ] https://github.com/blue-yonder/tsfresh [2 ] https://tsfresh.readthedocs.io/en/v0.1.2/text/feature_naming.html [3 ] https://tsfresh.readthedocs.io/en/latest/text/ feature_extraction_settings.html [4 ] https://tsfresh.readthedocs.io/en/latest/api/tsfresh.feature_extraction.html #module-tsfresh.feature_extraction.feature_calculators [5 ] Christ, M., Braun, N., Neuffer, J., and Kempa-Liehr A.W. (2018). Time Series FeatuRe Extraction on basis of Scalable Hypothesis tests (tsfresh – A Python package). Neurocomputing 307 (2018) 72-77