在 featuretools 1.0.0 中将 cutoff_time 传递给 dfs 的正确方法

Proper way to pass cutoff_time to dfs in featuretools 1.0.0

最近我将 featuretools 更新到 v1.0.0 并遇到了以下问题。我有随时间变化的实例,我想为它们构建时间相关的特性。此外,我想保存那些实例的一些历史特征。所以我的截止时间数据集由以下列组成:time, instance_id and feature1, feature2, ..., target

当我尝试 运行 dfs 时,出现错误 'NoneType' object has no attribute 'logical_types'

我发现是内部函数引起的get_ww_types_from_features

它尝试获取截止时间 df 的列类型,假设它具有木制品类型

        cutoff_schema = cutoff_time.ww.schema
        for column in pass_columns:
            logical_types[column] = cutoff_schema.logical_types[column]
            semantic_tags[column] = cutoff_schema.semantic_tags[column]
            origins[column] = "base"

但最初的截止时间是 pandas DataFrame,我还没有在代码中找到它被翻译成木制品的地方。而且在文档中说可以将截止时间传递为​​ pandas DataFrame

因此,我的问题是:传递截止时间DataFrame的正确方法是什么(如果是pandas那么代码哪里有错误?)(或者如果没有错误,那么我应该在 dfs 之前在代码中手动将截止时间转换为木材工作吗?)

cutoff_times = pd.DataFrame()
cutoff_times['customer_id'] = [1, 2, 3, 1]
cutoff_times['time'] = pd.to_datetime(['2014-1-1 04:00',
                             '2014-1-1 05:00',
                             '2014-1-1 06:00',
                             '2014-1-1 08:00'])
cutoff_times['label'] = [True, True, False, True]
cutoff_times
fm, features = ft.dfs(entityset=es,`enter code here`
                      target_dataframe_name='customers',
                      cutoff_time=cutoff_times,
                      cutoff_time_in_index=True)
fm

Featuretools 1.0.0 中存在错误,当使用具有附加列(例如标签)的 cutoff_time 的数据框并通过 n_jobsdask_kwargs 选项使用多个工作程序时.这可能是您遇到的问题。此错误已在 Featuretools 1.1.0

中修复

A​​ pandas df 意味着在 1.0.0

中被 cutoff_time 接受