并行化特征工具dfs



我尝试了类似的代码

ft.dfs(entityset = es,
target_entity = ..., 
n_jobs=-1,) # or n_jobs=40

但是在40个线程的机器上似乎不起作用:

S CPU% MEM%   TIME+  Command
S  0.0  0.7  0:00.00 python test.py
S  0.0  0.7  0:00.00 python test.py
S  0.0  0.7  0:00.00 python test.py
S  0.0  0.7  0:00.00 python test.py
S  0.0  0.7  0:00.00 python test.py
S  0.0  0.7  0:00.00 python test.py
S  0.0  0.7  0:00.00 python test.py
R 78.0  0.7 23:24.72 python test.py

正如您所看到的,没有40个进程,只有一个进程正在运行(该线程的运行范围从78-100%不等)。有人知道这里发生了什么吗?在关闭它之前,我让它运行了25分钟,我没有看到任何使用变化。

提前感谢!

可能是Featuretools没有达到dfs函数的并行化部分。特征计算是并行化的,但目前特征探索步骤(DeepFeatureSynthesis)还没有并行化。您可以通过在dfs调用中设置features_only=True并查看运行所需的时间来检查这是否是问题。然后可以使用calculate_feature_matrix方法来计算返回的特征。

最新更新