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_sort
和column_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 (str 或 None) – 排序列的名称。
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_sort
和column_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 (str 或 None) – 排序列的名称。
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 (None 或 int) – 提交给工作进程进行并行化的单个块的大小。一个块定义为一个 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
包含允许用户方便地提取和过滤特征的方法。