尝试解释 XGBoost 分类器的权重时出现类型错误

问题描述

我正致力于在 kaggle 提供的 Titanic 数据集上实施 XGBoost。我在 ELI 5 的官方文档 Link to jupyter notebook tutorial 上的这个链接上找到了包 ELI5 和使用 XGBoost 在泰坦尼克号数据集上实现这个包的教程。在笔记本的第三部分,我尝试将 show_weights 函数应用于我的分类器,但在运行这些代码行后出现以下错误

[1]from eli5 import show_weights,explain_weights
[2]show_weights(clf,vec=vec)

Out[2]: TypeError: 'nonetype' object is not iterable

显然它没有解释在第 2 节中创建的 clf 对象。在任何一个包的文档中都没有关于 ELI5 包与 XGBoost 不兼容的信息。

解决方法

在 XGBoost 1.4.0 中使用 ELI5 时,我可以重现同样的错误。

但是,使用 XGBoost 1.3.0 和更早版本时,错误消失了。

如果可以,请降级。