我经常看到使用featuretools创建聚合的建议范例是通过关系链接单独的实体。
现在,我的情况有点不同,我有一个看起来像这样的表
user_id | time_id | feature1_lag1 | feature1_lag2 | ... | feature1_lagn | feature2_lag1| ... | featurem_lagn
基本上我有相同功能的滞后版本作为同一个表的不同列。
在这种情况下我可以使用featuretools吗?
答案 0 :(得分:1)
可以在具有变换原语的单个表上直接使用Featuretools。假设您将time_id
设置为time_index
,则每列仅对该时间索引有效。可能感到奇怪的原因是您在 m 次发生 n 列。
通过重构数据集,您也可以输入延迟时间信息,甚至可以在此过程中进行一些聚合。要获得该功能,您需要像这样取消数据:
user_id time_id lag feature_1 ... feature_n
1 2017-01-05 1 2.7 9.8
1 2017-01-04 2 2.3 ... 9.1
1 2016-01-01 m 0.0 0.0
2 2017-01-05 1 18.1 ... 42.0
. . .
. . .
23 2016-01-01 m 0.0 ... 0.6
制作这样的实体(我们在这里称之为measurements
)允许您设置时间索引,以便每个延迟都有自己的时间。这使您可以在代表现实的时间使用该行中的数据。
此外,您可以使用measurements
上的normalize_entity从user_id
创建新的父实体。如果您想要由用户进行预测,那么新实体users
将成为深度特征综合的目标实体。