运行深度特征综合时仅包括某些特征?

时间:2019-03-22 13:05:02

标签: featuretools

例如,我的一个实体有两组ID。 一个是连续的(显然是创建EntitySet所必需的),一个是与其他表合并时用作外键的。

这将导致Featuretools包含要集合的要素集中的ID。 SUM(ID)并不是我感兴趣的功能。

运行深度特征合成时是否可以包含某些特征?

1 个答案:

答案 0 :(得分:1)

在调用ft.dfs时有三种排除功能的方法。

  • 使用ignore_variables在实体中指定不应用于创建特征的变量。这是一个字典,将实体ID映射到要忽略的变量名称列表。

  • 使用drop_contains删除包含任何字符串的特征 在此参数中列出。

  • 使用drop_exact删除与该参数中列出的任何字符串完全匹配的功能。

以下是ft.dfs通话中所有三个示例的用法

ft.dfs(target_entity="customers"],
       ignore_variables={
           "transactions": ["amount"],
           "customers": ["age", "gender", "date_of_birth"]
       }, # ignore these variables
       drop_contains=["customers.SUM("],  # drop features that contain these strings
       drop_exact=["STD(transactions.quanity)"],  # drop features named exactly this
       ...
 )

这三个参数都记录在here中。

如果要获取不需要的功能,最后要考虑的是实体集中变量的变量类型。如果看到ID变量的总和,则必须表示Featuretools认为ID变量是数字值。如果您告诉featuretools它是一个ID,它将不会对其应用数字聚合。