Evalml: evalml 导入时的文本特征警告

创建于 2020-08-03  ·  7评论  ·  资料来源: alteryx/evalml

在每个user_guide笔记本中 - RTD 在第一次导入evalml地方产生警告:

例子

此问题的原因是get_importable_subclasses初始化每个组件。

最有用的评论

nlp-primitives 1.0 现在在 pypi 上发布,tensorflow 不再是必需的依赖项

所有7条评论

再现

import evalml

堆栈跟踪在这里

根本原因

  • get_importable_subclasses尝试初始化每个组件
  • 这在导入时运行,因为我们使用get_importable_subclasses来生成估计器和组件的静态列表
  • 如果没有为构造函数提供文本列名称,则文本特征化器当前会发出警告

似乎我们应该尽我们所能避免在导入时发出警告。

修复的想法

  1. get_importable_subclasses生成的列表更新为在运行时生成,而不是在导入时生成。 即在组件实用程序中
def _all_estimators():
    return get_importable_subclasses(Estimator, used_in_automl=False)
...
  1. 如果我们的组件是使用默认参数构造的,请确保它们都不会发出警告。 更新TextFeaturizer以不引发此特定警告。 添加单元测试以检查没有警告。
  2. 更新get_importable_subclasses以抑制来自组件初始化的任何警告

我建议我们做第 1 项和第 2 项。

合并 #1022 时 - 删除了运行时警告。 但是,我仍然看到以下警告:

2020-08-11 12:17:34,559 featuretools - WARNING Featuretools failed to load plugin nlp_primitives from library nlp_primitives. For a full stack trace, set logging to debug.

@dsherry我会提出 PR 来做上面提到的第 1 项和第 2 项,但@eccabay告诉我这个警告不是来自我们这边。

在与@rwedge讨论后,上述功能工具警告似乎有两种解决方案:

  1. 使用 beta pip 依赖解析器

  2. featuretools 正在使 tensorflow 成为可选项,可以由 EOD 完成 8/12/2020

我建议我们等待新的 featuretools 发布并确认警告是否仍然是一个问题。

谢谢@jeremyliweishih ! 我同意这里的选项 2 最适合处理 featuretools 警告。

除此之外,我的理解是您目前正在处理我上周评论中的选项 1 和选项 2,对吗? 我认为这两个变化,尤其是第一个变化,都会增加价值。

nlp-primitives 1.0 现在在 pypi 上发布,tensorflow 不再是必需的依赖项

确认nlp-primitives最新版本不会弹出警告。 谢谢@rwedge! 你可以在这里查看

太棒了,谢谢两位!

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

freddyaboulton picture freddyaboulton  ·  3评论

chukarsten picture chukarsten  ·  4评论

dsherry picture dsherry  ·  5评论

dsherry picture dsherry  ·  3评论

dsherry picture dsherry  ·  3评论