如何在使用深度特征合成时记录由 FeatureTools 导出的常量

How to record constants derived by FeatureTools when using Deep Feature Synthesis

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 的单个贷款期限具有 2000loan_term.COUNT(loan),而无需重新设计-计算数据框中的所有 loan_terms。*

我可以通过将实体与训练数据重新组合来做到这一点 ft.calculate_feature_matrix(features, my_entity_set_with_one_new_entity_added),但这是低效且缓慢的。

有没有办法让 FeatureTools 记录在深度特征合成过程中发现的常量,并将它们用于未来的特征生成?


*现在将单个新贷款实体包括在计算中对我来说并不重要。所以 12 不必变成 2001.

不幸的是,从 Featuretools v0.3.1 开始,还没有办法做到这一点。您可以通过执行以下操作手动完成此操作。

  1. 在训练数据上使用 运行 的输出特征矩阵,select 您不想重新计算的列,如 loan_term.COUNT(loan)
  2. 从特征列表中删除您在 1. 中 select 编辑的特征,并在新数据集 运行 中移除特征
  3. 将第 1 步中的数据帧加入到第 2 步中相应键的数据帧中。在这种情况下 loan_term

您可能需要根据数据集的具体情况进行一些调整。