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

Posted

技术标签:

【中文标题】在 featuretools 1.0.0 中将 cutoff_time 传递给 dfs 的正确方法【英文标题】:Proper way to pass cutoff_time to dfs in featuretools 1.0.0 【发布时间】:2021-12-14 11:27:29 【问题描述】:

最近我将功能工具更新到 v1.0.0 并遇到以下问题。我有随时间变化的实例,我想为它们构建时间相关的功能。此外,我想保存这些实例的一些历史特征。所以我的截止时间数据集由以下列组成:时间、instance_id 和 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 之前在代码中手动工作?)

【问题讨论】:

【参考方案1】:

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

pandas df 意味着在 1.0.0 中被 cutoff_time 接受

【讨论】:

【参考方案2】:
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

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。 我的做法完全相同,但在我的情况下不起作用它在 0.0.24 中起作用,但现在不起作用 我认为技术版本在这里起着重要作用。

以上是关于在 featuretools 1.0.0 中将 cutoff_time 传递给 dfs 的正确方法的主要内容,如果未能解决你的问题,请参考以下文章

无法在 featuretools 实体集中添加关系

Featuretools /woodwork :'Entity' 对象没有属性 'ww'

使用 featuretools / DFS 更新数据

featuretools入门

featuretools入门

[featuretools]“EntitySet”对象没有属性“entity_from_dataframe”