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和计算时间的矩阵.

Parameters:
  • features (list[FeatureBase]) – 要计算的特征定义.

  • entityset (EntitySet) – 已初始化的EntitySet.如果未提供`dataframes`和`relationships`,则需要此参数.

  • cutoff_time (pd.DataFrame 或 Datetime) – 指定为每个实例计算特征的时间.生成的特征矩阵将使用截止时间之前的数据.可以是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, 索引列, 时间索引, 逻辑类型, 语义标签, 创建索引)}.注意,只有DataFrame是必需的.如果提供了Woodwork DataFrame,则其他参数将被忽略.

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

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

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

  • approximate (Timedelta 或 str) – 用于将具有相似截止时间的实例分组以计算昂贵特征的频率.例如,如果桶为24小时,则同一天内具有截止时间的所有实例将使用相同的计算方法来计算昂贵的特征.

  • verbose (bool, 可选) – 打印进度信息.时间粒度为每个块.

  • chunk_size (int 或 float 或 None) – 每次计算的输出特征矩阵的最大行数.如果传递一个大于0的整数,将尝试每块使用那么多行.如果传递一个介于0和1之间的浮点数,则将块大小设置为所有行的该百分比.如果为None,并且n_jobs > 1,则将其设置为1/n_jobs.

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

  • dask_kwargs (dict, 可选) –

    创建dask客户端和调度程序时要传递的关键字参数字典.即使未设置n_jobs,使用`dask_kwargs`也会启用多进程.主要参数:

    cluster (str 或 dask.distributed.LocalCluster):

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

    diagnostics port (int):

    用于Web仪表板的端口号.如果未指定,则不会启用Web界面.

    还将接受LocalCluster的有效关键字参数.

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

  • progress_callback (callable) –

    随着进度更新调用的函数.具有以下参数:

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

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

Returns:

特征矩阵.

Return type:

pd.DataFrame