最近我更新了 featuretools 到 v1.0.0 版本,并遇到了以下问题。我有一些随时间变化的实例,我希望为它们构建依赖于时间的特征。此外,我还希望保存这些实例的一些历史特征。因此,我的截止时间数据集包括以下列:时间、实例ID以及特征1、特征2、…、目标
当我尝试运行 dfs 时,遇到了错误 'NoneType' object has no attribute 'logical_types'
我发现这是由内部函数 get_ww_types_from_features
引起的
它试图获取截止时间数据框的列类型,假设它具有 woodwork 类型
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 数据框,我在代码中没有找到将其转换为 woodwork 的地方。此外,文档中也提到可以将截止时间作为 pandas 数据框传递是可以的
因此,我的疑问是:传递截止时间数据框的正确方法是什么?(如果是 pandas,是否代码中有错误?)或者如果没有错误,那么在 dfs 之前我是否需要手动将截止时间转换为 woodwork?
回答:
在 Featuretools 1.0.0 中,当使用包含额外列(例如标签)的数据框作为 cutoff_time
并通过 n_jobs
或 dask_kwargs
选项使用多个工作线程时,存在一个错误。这可能是您遇到的问题。这个错误已在 Featuretools 1.1.0 中修复
在 1.0.0 版本中,pandas 数据框是可以作为 cutoff_time
接受的