使用深度特征综合时如何记录FeatureTools派生的常数

时间:2018-10-22 15:33:42

标签: feature-engineering featuretools

FeatureTools执行深度特征综合时,有没有办法记录它得出的常数值?

例如,我有很多这样的行: | loan_id | loan_term | |---------|:---------:| | a | 12 | | ... | ... | | z | 18 |

DeepFeatureSynthesis工程师features包括<Feature: loan_term.COUNT(loan)>如下: | loan | loan_term | loan_term.COUNT(loan) | |---------|:---------:|:---------------------:| | a | 12 | 2000 | | ... | ... | ... | | z | 18 | 800 |

我希望能够从单个实体重新设计功能,以使12的单个贷款期限具有loan_term.COUNT(loan)的{​​{1}},而不必重新计算数据框中的所有2000。*

我可以通过将实体与训练数据重新组合来做到这一点 loan_term,但这效率低下又慢。

有没有一种方法可以指导FeatureTools记录深度特征合成过程中发现的常量,并将其用于将来的特征生成?


*现在对我而言不重要的是在计算中包括单个新的贷款实体。因此,ft.calculate_feature_matrix(features, my_entity_set_with_one_new_entity_added)不必成为12

1 个答案:

答案 0 :(得分:1)

不幸的是,功能工具v0.3.1尚无办法做到这一点。您可以通过以下操作手动完成此操作。

  1. 使用在训练数据上运行的输出特征矩阵,选择不需要重新计算的列,例如loan_term.COUNT(loan)
  2. 从功能列表中删除在1.中选择的功能,然后在新数据集上运行
  3. 在适当的键上将步骤1的数据帧加入步骤2的数据帧。在这种情况下,loan_term

您可能必须根据数据集的详细信息进行一些调整。