tsfresh.convenience 包

子模块

tsfresh.convenience.bindings 模块

tsfresh.convenience.bindings.dask_feature_extraction_on_chunk(df, column_id, column_kind, column_value, column_sort=None, default_fc_parameters=None, kind_to_fc_parameters=None)[source]

根据列名和提取设置,在分组的 dask 数据帧上提取特征。此包装函数仅应在输入为 dask 数据帧时使用。所有格式处理(输入和输出)都需要在此之前或之后完成。

示例

例如,如果您想在机器人示例数据帧(存储为 csv)上提取特征

导入语句

>>>  from dask import dataframe as dd
>>>  from tsfresh.convenience.bindings import dask_feature_extraction_on_chunk
>>>  from tsfresh.feature_extraction.settings import MinimalFCParameters

读取数据

>>>  df = dd.read_csv("robot.csv")

将数据准备为正确格式。该格式需要是一个分组数据帧(按时间序列 id 和特征类型分组),其中每个分组块包含一个恰好有 4 列的数据帧:column_id, column_kind, column_sortcolumn_value。您可以在 数据格式 中找到这些列的描述。请注意:为了使此函数工作,您需要确保所有列都存在!如有必要,创建这些列并用虚拟值填充它们。

>>>  df = df.melt(id_vars=["id", "time"],
...               value_vars=["F_x", "F_y", "F_z", "T_x", "T_y", "T_z"],
...               var_name="kind", value_name="value")
>>>  df_grouped = df.groupby(["id", "kind"])

调用特征提取

>>>  features = dask_feature_extraction_on_chunk(df_grouped, column_id="id", column_kind="kind",
...                                              column_sort="time", column_value="value",
...                                              default_fc_parameters=MinimalFCParameters())

以表格格式写入数据

>>>  features = features.categorize(columns=["variable"])
>>>  features = features.reset_index(drop=True) \
...                 .pivot_table(index="id", columns="variable", values="value", aggfunc="mean")
>>>  features.to_csv("output")
参数:
  • df (dask.dataframe.groupby.DataFrameGroupBy) – 按 id 和类型分组的 dask 数据帧。

  • default_fc_parameters (dict) – 特征计算器名称到参数的映射。只有作为此字典中键的名称将被计算。有关更多信息,请参阅 class:ComprehensiveFCParameters

  • kind_to_fc_parameters (dict) – 类型名称到与 default_fc_parameters 类型相同的对象的映射。如果您在此处将某个类型作为键,则将使用相应的 fc_parameters 对象(即该值),而不是 default_fc_parameters。这意味着对于那些在 kind_of_fc_parameters 中没有任何条目的类型,将被特征选择忽略。

  • column_id (str) – 用于分组的 id 列的名称。

  • column_sort (strNone) – 排序列的名称。

  • column_kind (str) – 记录值类型的列的名称。

  • column_value (str) – 存储值本身的列的名称。

返回值:

一个 dask 数据帧,包含列 column_id,“variable” 和 “value”。索引取自分组数据帧。

返回类型:

dask.dataframe.DataFrame (id int64, variable object, value float64)

tsfresh.convenience.bindings.spark_feature_extraction_on_chunk(df, column_id, column_kind, column_value, column_sort=None, default_fc_parameters=None, kind_to_fc_parameters=None)[source]

根据列名和提取设置,在分组的 spark 数据帧上提取特征。此包装函数仅应在输入为 spark 数据帧时使用。所有格式处理(输入和输出)都需要在此之前或之后完成。

示例

例如,如果您想在机器人示例数据帧(存储为 csv)上提取特征

导入语句

>>>  from tsfresh.convenience.bindings import spark_feature_extraction_on_chunk
>>>  from tsfresh.feature_extraction.settings import MinimalFCParameters

读取数据

>>>  df = spark.read(...)

将数据准备为正确格式。该格式需要是一个分组数据帧(按时间序列 id 和特征类型分组),其中每个分组块包含一个恰好有 4 列的数据帧:column_id, column_kind, column_sortcolumn_value。您可以在 数据格式 中找到这些列的描述。请注意:为了使此函数工作,您需要确保所有列都存在!如有必要,创建这些列并用虚拟值填充它们。

>>>  df = ...
>>>  df_grouped = df.groupby(["id", "kind"])

调用特征提取

>>>  features = spark_feature_extraction_on_chunk(df_grouped, column_id="id", column_kind="kind",
...                                               column_sort="time", column_value="value",
...                                               default_fc_parameters=MinimalFCParameters())

以表格格式写入数据

>>>  features = features.groupby("id").pivot("variable").sum("value")
>>>  features.write.csv("output")
参数:
  • df (pyspark.sql.group.GroupedData) – 按 id 和类型分组的 spark 数据帧。

  • default_fc_parameters (dict) – 特征计算器名称到参数的映射。只有作为此字典中键的名称将被计算。有关更多信息,请参阅 class:ComprehensiveFCParameters

  • kind_to_fc_parameters (dict) – 类型名称到与 default_fc_parameters 类型相同的对象的映射。如果您在此处将某个类型作为键,则将使用相应的 fc_parameters 对象(即该值),而不是 default_fc_parameters。这意味着对于那些在 kind_of_fc_parameters 中没有任何条目的类型,将被特征选择忽略。

  • column_id (str) – 用于分组的 id 列的名称。

  • column_sort (strNone) – 排序列的名称。

  • column_kind (str) – 记录值类型的列的名称。

  • column_value (str) – 存储值本身的列的名称。

返回值:

一个 spark 数据帧,包含列 column_id,“variable” 和 “value”。

返回类型:

pyspark.sql.DataFrame[id: bigint, variable: string, value: double]

tsfresh.convenience.relevant_extraction 模块

tsfresh.convenience.relevant_extraction.extract_relevant_features(timeseries_container, y, X=None, default_fc_parameters=None, kind_to_fc_parameters=None, column_id=None, column_sort=None, column_kind=None, column_value=None, show_warnings=False, disable_progressbar=False, profile=False, profiling_filename='profile.txt', profiling_sorting='cumulative', test_for_binary_target_binary_feature='fisher', test_for_binary_target_real_feature='mann', test_for_real_target_binary_feature='mann', test_for_real_target_real_feature='kendall', fdr_level=0.05, hypotheses_independent=False, n_jobs=1, distributor=None, chunksize=None, ml_task='auto')[source]

timeseries_container 中提取时间序列特征的高级便利函数。然后返回特征矩阵 X,可能根据目标向量 y 增加相关特征。

有关更多详细信息,请参阅 extract_features()select_features() 的文档。

示例

>>> 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')
参数:
  • timeseries_container – 包含要计算特征的时间序列的 pandas.DataFrame,或者一个 pandas.DataFrame 的字典。参见 extract_features()

  • X (pandas.DataFrame) – 一个包含附加特征的 DataFrame

  • y (pandas.Series) – 目标向量

  • default_fc_parameters (dict) – 特征计算器名称到参数的映射。只有作为此字典中键的名称将被计算。有关更多信息,请参阅 class:ComprehensiveFCParameters

  • kind_to_fc_parameters (dict) – 类型名称到与 default_fc_parameters 类型相同的对象的映射。如果您在此处将某个类型作为键,则将使用相应的 fc_parameters 对象(即该值),而不是 default_fc_parameters。

  • column_id (str) – 用于分组的 id 列的名称。请参见 数据格式

  • column_sort (str) – 排序列的名称。请参见 数据格式

  • column_kind (str) – 记录值类型的列的名称。请参见 数据格式

  • column_value (str) – 存储值本身的列的名称。请参见 数据格式

  • chunksize (Noneint) – 提交给工作进程进行并行化的单个块的大小。一个块定义为一个 id 和一个类型对应的单个时间序列。如果将 chunksize 设置为 10,则意味着一个任务是计算 10 个时间序列的所有特征。如果设置为 None,则根据分发器,会使用启发式方法寻找最优的 chunksize。如果您遇到内存不足异常,可以尝试使用 dask 分发器和较小的 chunksize。

  • n_jobs (int) – 用于并行化的进程数。如果为零,则不使用并行化。

  • distributor (class) – 高级参数:将其设置为您想用作分发器的类名。有关更多信息,请参阅 utilities/distribution.py。如果希望 TSFresh 选择最佳分发器,请保留为 None。

  • show_warnings (bool) – 在特征提取期间显示警告(用于计算器调试)。

  • disable_progressbar (bool) – 在计算时隐藏进度条。

  • profile (bool) – 在特征提取期间开启性能分析

  • profiling_sorting (basestring) – 如何对性能分析结果进行排序(有关更多信息,请参见性能分析包的文档)

  • profiling_filename (basestring) – 保存性能分析结果的位置。

  • test_for_binary_target_binary_feature (str) – 用于二元目标、二元特征的检验方法(当前未使用)

  • test_for_binary_target_real_feature (str) – 用于二元目标、实数特征的检验方法

  • test_for_real_target_binary_feature (str) – 用于实数目标、二元特征的检验方法(当前未使用)

  • test_for_real_target_real_feature (str) – 用于实数目标、实数特征的检验方法(当前未使用)

  • fdr_level (float) – 应遵循的 FDR 水平,这是所有创建特征中无关特征的理论预期百分比。

  • hypotheses_independent (bool) – 特征的显著性是否可以被假定为独立的?通常,这应该设置为 False,因为特征从不独立(例如,均值和中位数)。

  • ml_task (str) – 预期的机器学习任务。可以是 ‘classification’(分类)、‘regression’(回归)或 ‘auto’(自动)。默认为 ‘auto’,这意味着根据 y 推断预期的任务。如果 y 具有布尔、整数或对象数据类型,则假定任务为分类,否则为回归。

返回值:

特征矩阵 X,可能扩展了相关时间序列特征。

模块内容

子模块 convenience 包含允许用户方便地提取和过滤特征的方法。