使用 RandomizedSearchCV 对象调用 fit
方法时,遇到报错,错误信息如下:
'super' object has no attribute '__sklearn_tags__'
初步怀疑是版本问题,很可能与 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)。