Source code for tsfresh.convenience.relevant_extraction

# -*- coding: utf-8 -*-
# This file as well as the whole tsfresh package are licenced under the MIT licence (see the LICENCE.txt)
# Maximilian Christ (maximilianchrist.com), Blue Yonder Gmbh, 2016

from __future__ import absolute_import
import pandas as pd
from tsfresh.feature_extraction import extract_features, FeatureExtractionSettings
from tsfresh.feature_selection import select_features
from tsfresh.utilities.dataframe_functions import restrict_input_to_index, impute


[docs]def extract_relevant_features(timeseries_container, y, X=None, feature_extraction_settings=None, feature_selection_settings=None, column_id=None, column_sort=None, column_kind=None, column_value=None): """ High level convenience function to extract time series features from `timeseries_container`. Then return feature matrix `X` possibly augmented with features relevant with respect to target vector `y`. For more details see the documentation of :func:`~tsfresh.feature_extraction.extraction.extract_features` and :func:`~tsfresh.feature_selection.selection.select_features`. Examples ======== >>> from tsfresh.examples import load_robot_execution_failures >>> from tsfresh import extract_relevant_features >>> df, y = load_robot_execution_failures() >>> X = extract_relevant_features(df, y, column_id='id', column_sort='time') :param timeseries_container: See parameter `timeseries_container` in :func:`~tsfresh.feature_extraction.extraction.extract_features` :param y: See parameter `y` in :func:`~tsfresh.feature_selection.selection.select_features` :param X: See parameter `X` in :func:`~tsfresh.feature_selection.selection.select_features` :param column_id: See parameter `column_id` in :func:`~tsfresh.feature_extraction.extraction.extract_features` :param column_sort: See parameter `column_sort` in :func:`~tsfresh.feature_extraction.extraction.extract_features` :param column_kind: See parameter `column_kind` in :func:`~tsfresh.feature_extraction.extraction.extract_features` :param column_value: See parameter `column_value` in :func:`~tsfresh.feature_extraction.extraction.extract_features` :param feature_extraction_settings: See parameter `feature_extraction_settings` in :func:`~tsfresh.feature_extraction.extraction.extract_features` :param feature_selection_settings: See parameter `feature_selection_settings` in :func:`~tsfresh.feature_selection.selection.select_features` :return: Feature matrix X, possibly extended with relevant time series features. """ if X is not None: timeseries_container = restrict_input_to_index(timeseries_container, column_id, X.index) if feature_extraction_settings is None: feature_extraction_settings = FeatureExtractionSettings() feature_extraction_settings.IMPUTE = impute X_ext = extract_features(timeseries_container, feature_extraction_settings=feature_extraction_settings, column_id=column_id, column_sort=column_sort, column_kind=column_kind, column_value=column_value) X_sel = select_features(X_ext, y, feature_selection_settings=feature_selection_settings) if X is None: X = X_sel else: X = pd.merge(X, X_sel, left_index=True, right_index=True, how="left") return X