Scikit-learn 提示:’super’ object has no attribute ‘__sklearn_tags__’. 错误的解决方法

使用 RandomizedSearchCV 对象调用 fit 方法时,遇到报错,错误信息如

使用 RandomizedSearchCV 对象调用 fit 方法时,遇到报错,错误信息如下:

初步怀疑是版本问题,很可能与 Scikit-learn 和 XGBoost 或 Python 版本之间的兼容性问题有关。我使用的是 Python 3.12,并且 Scikit-learn 和 XGBoost 都安装了最新版本。

谷歌了以下,发现 stackoverflow 上有相同的问题:

https://stackoverflow.com/questions/79290968/super-object-has-no-attribute-sklearn-tags

报错原因及解决方法:

cikit-learn 1.6 版本修改了 API 的 “标签” ,这就导致了此错误。 XGBoost 在 PR11021 中进行了必要的更改,但目前尚未发布。 可以保留 sklearn 版本 <1.6,也可以直接从 github 自行构建 XGBoost(或在新版本发布后升级 XGBoost)。