首页 > 解决方案 > 使用新的 xgboost-distribution 时导入错误

问题描述

我正在使用新的xgboost-distribution 模块

我将以下内容输入到我的文件中

from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split

from xgboost_distribution import XGBDistribution

if __name__ == '__main__':
    data = load_boston()
    X, y = data.data, data.target
    X_train, X_test, y_train, y_test = train_test_split(X, y)

    model = XGBDistribution(
        distribution="normal",
        n_estimators=500
    )
    model.fit(
        X_train, y_train,
        eval_set=[(X_test, y_test)],
        early_stopping_rounds=10
    )

但是,当我运行此代码时,它会在 xgboost/sklearn.py 模块文件中生成一个导入错误:

from xgboost_distribution import XGBDistribution
  File "/Users/timgundersen/opt/anaconda3/lib/python3.8/site-packages/xgboost_distribution/__init__.py", line 18, in <module>
    from xgboost_distribution.model import XGBDistribution  # noqa
  File "/Users/timgundersen/opt/anaconda3/lib/python3.8/site-packages/xgboost_distribution/model.py", line 7, in <module>
    from xgboost.sklearn import XGBModel, _wrap_evaluation_matrices, xgboost_model_doc
ImportError: cannot import name '_wrap_evaluation_matrices' from 'xgboost.sklearn' (/Users/timgundersen/opt/anaconda3/lib/python3.8/site-packages/xgboost/sklearn.py)

我尝试更新sklearn, 以及xgboostsklearn 需要的其他模块。

如果我的计算机更新了所有正确的版本,为什么这会给我一个导入错误?

标签: pythonmachine-learningscikit-learnxgboost

解决方案


您使用哪个python版本?

在这种情况下python 3.8,它应该与scikit-learn 0.24.1

pip install scikit-learn==0.24.1

推荐阅读