Featuretools在不使用CPU内核的情况下构建功能所花费的时间太长

2024-09-30 22:11:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用featuretools Deep Feature Sintesys为40k行和200列的数据集构建功能。我选择了大约40个转换原语,如下面的代码所示:

feature_matrix, feature_defs = ft.dfs(entityset=es, target_entity="df", n_jobs=6,
                                      trans_primitives=primitives.name.to_list(),
                                      verbose=True)

但是,当我运行代码时,发现要构建的功能需要花费大量的时间,而且这个过程不会在我的CPU中的多个内核中运行,甚至没有一个内核可以获得100%的使用率。换句话说,我正在等待数小时来运行一个进程,这个进程只使用了我机器的最小资源(内存也不是问题)

功能工具发现功能(并打印“Build n features”日志)后,它将创建集群,并使用“n_jobs”参数中指定的所有核心,以100%的能力使用。这第二个瞬间真的很快,只要几秒钟,一旦我所有的资源都被使用了

我的问题是,为什么会发生这种情况?是否有可能更快地发现功能以减少此时间?只是不明白一个不使用资源的过程是如何花费太长时间的


Tags: 代码功能进程过程时间jobs资源内核