错误信息如标题所示。根据我下面的代码,这对我来说没有意义:
clf = xgboost.XGBClassifier(verbosity=1)
print (clf.__class__, clf.verbosity)
# prints <class 'xgboost.sklearn.XGBClassifier'> 1
clf.fit(X=train_data_iter[features].fillna(0), y=train_data_iter['y']) # the error is raised here
该值显然是 1,但不知怎的却得到了 -1?我不明白。
错误信息“XGBoostError:参数详细程度的值 -1 超出界限 [0,3]”表示传递给 XGBoost 的详细程度参数无效。尽管在
XGBClassifier
构造函数中将
verbosity=1
设置为正确,但此错误消息表明 XGBoost 在内部接收到 -1 作为详细程度的值。
这种行为的不匹配表明 XGBoost 库版本或环境中的某些交互中可能存在错误。以下是可以尝试解决此问题的一些步骤:
-
升级 XGBoost: 确保使用的是最新版本的 XGBoost。可以使用
pip install --upgrade xgboost
进行升级。 -
检查版本兼容性: 使用的其他库(如 scikit-learn)可能与特定版本的 XGBoost 存在兼容性问题。检查这些库的文档,以确保它们彼此兼容。
-
重新安装 XGBoost: 尝试重新安装 XGBoost 库以解决任何潜在的安装问题。可以使用
pip uninstall xgboost
卸载,然后使用pip install xgboost
重新安装。 -
隔离问题: 尝试在一个更简单的环境中使用最小的代码片段来重现该错误。这将有助于确定问题是否与的代码或环境设置有关。
如果在尝试这些步骤后问题仍然存在,建议在 XGBoost GitHub 存储库 https://github.com/dmlc/xgboost/issues 中搜索类似问题或创建一个新问题,提供有关的环境和代码的详细信息以获得进一步的帮助。
标签:python,machine-learning,xgboost,xgbclassifier From: 78761783