featuretools.calculate_feature_matrix#

featuretools.calculate_feature_matrix(features, entityset=None, cutoff_time=None, instance_ids=None, dataframes=None, relationships=None, cutoff_time_in_index=False, training_window=None, approximate=None, save_progress=None, verbose=False, chunk_size=None, n_jobs=1, dask_kwargs=None, progress_callback=None, include_cutoff_time=True)[source]#

计算给定实例ID集合和计算时间的特征矩阵。

参数:
  • features (list[FeatureBase]) – 要计算的特征定义。

  • entityset (EntitySet) – 已初始化的entityset。如果未提供 dataframesrelationships,则必需。

  • cutoff_time (pd.DataFrameDatetime) – 指定为每个实例计算特征的时间点。生成的特征矩阵将使用截止时间(包括截止时间)之前的数据。可以是 DataFrame 或单个值。如果传入 DataFrame,要计算特征的实例 ID 必须位于与目标 DataFrame 索引同名的列中,或位于名为 instance_id 的列中。DataFrame 中的截止时间值必须位于与目标 DataFrame 时间索引同名的列中,或位于名为 time 的列中。如果 DataFrame 有多于两列,任何附加列都将添加到结果特征矩阵中。如果传入单个值,则该值将用于所有实例。

  • instance_ids (list) – 要计算特征的实例列表。仅在 cutoff_time 是单个 datetime 时使用。

  • dataframes (dict[str -> tuple(DataFrame, str, str, dict[str -> str/Woodwork.LogicalType], dict[str->str/set], boolean)]) – DataFrame 字典。条目格式为 {DataFrame 名称 -> (dataframe, index 列, time_index, logical_types, semantic_tags, make_index)}。注意只有 dataframe 是必需的。如果提供了 Woodwork DataFrame,其他参数将被忽略。

  • relationships (list[(str, str, str, str)]) – DataFrame 之间的关系列表。列表项是格式为 (父 DataFrame 名称, 父列, 子 DataFrame 名称, 子列) 的元组。

  • cutoff_time_in_index (bool) – 如果为 True,返回一个带 MultiIndex 的 DataFrame,其中第二个索引是截止时间(第一个是实例 ID)。DataFrame 将按 (time, instance_id) 排序。

  • training_window (Timedeltastr, 可选) – 定义在计算特征时,截止时间前可以使用多少时间的数据的窗口。如果为 None,则使用截止时间前的所有数据。默认为 None

  • approximate (Timedeltastr) – 对于计算成本较高的特征,按此频率将具有相似截止时间的实例分组。例如,如果桶大小为 24 小时,则同一天截止时间的所有实例将对昂贵的特征使用相同的计算。

  • verbose (bool, 可选) – 打印进度信息。时间粒度是每个数据块。

  • chunk_size (intfloatNone) – 每次计算的输出特征矩阵的最大行数。如果传入大于 0 的整数,将尝试每个数据块使用这么多行。如果传入 0 到 1 之间的浮点值,将数据块大小设置为总行数的该百分比。如果为 None 且 n_jobs > 1,则将其设置为 1/n_jobs。

  • n_jobs (int, 可选) – 计算特征矩阵时使用的并行进程数。如果不等于 1,则需要 Dask。

  • dask_kwargs (dict, 可选) –

    创建 dask client 和 scheduler 时传递的关键字参数字典。即使未设置 n_jobs,使用 dask_kwargs 也会启用多进程。主要参数包括:

    cluster (str 或 dask.distributed.LocalCluster)

    要发送任务的集群或集群地址。如果未指定,将创建一个集群。

    diagnostics port (int)

    用于 web dashboard 的端口号。如果未指定,web 界面将不会启用。

    也接受 LocalCluster 的有效关键字参数。

  • save_progress (str, 可选) – 保存中间计算结果的路径。

  • progress_callback (callable) –

    调用此函数以接收增量进度更新。具有以下参数:

    update: 自上次调用以来的进度百分比变化(0 到 100 之间的浮点数) progress_percent: 完成的总计算百分比(0 到 100 之间的浮点数) time_elapsed: 自调用开始以来经过的总时间(秒)

  • include_cutoff_time (bool) – 在特征计算中包含截止时间的数据。默认为 True

返回值:

特征矩阵。

返回类型:

pd.DataFrame