首页 > 解决方案 > 尝试解释 XGBoost 分类器的权重时出现 TypeError

问题描述

我正在努力在Kaggle提供的 Titanic 数据集上实现 XGBoost 。我在 ELI 5 官方文档( Jupyter Notebook 教程)的此链接上找到了包 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 不兼容的信息。

标签: pythonxgboosteli5

解决方案


将 ELI5 与 XGBoost 1.4.0 一起使用时,我可以重现同样的错误。

但是,对于 XGBoost 1.3.0 版和更早的版本,该错误消失了。

如果可以,请降级。


推荐阅读