AttributeError:模块“xgboost”没有属性“XGBRegressor”
Posted
技术标签:
【中文标题】AttributeError:模块“xgboost”没有属性“XGBRegressor”【英文标题】:AttributeError: module ‘xgboost’ has no attribute ‘XGBRegressor’ 【发布时间】:2017-02-21 15:19:42 【问题描述】:我正在尝试使用 spyder 和 python 运行 xgboost,但我不断收到此错误:
代码如下:
import xgboost as xgb
xgb.XGBRegressor(max_depth=3, learning_rate=0.1, n_estimators=100, silent=True,
objective='reg:linear', gamma=0, min_child_weight=1,
max_delta_step=0, subsample=1, colsample_bytree=1,
seed=0, missing=None)
错误是
Traceback (most recent call last):
File "<ipython-input-33-d257a9a2a5d8>", line 1, in <module>
xgb.XGBRegressor(max_depth=3, learning_rate=0.1, n_estimators=100, silent=True,
AttributeError: module 'xgboost' has no attribute 'XGBRegressor'
我有 Python 3.5.2 :: Anaconda 4.2.0 (x86_64)
我该如何解决这个问题?
【问题讨论】:
如果你把print(dir(xgb))
放在你的import语句之后,你会得到什么?
print(dir(xgb)) ['doc', 'loader', 'name', ' 包'、'路径'、'规范']
【参考方案1】:
我们可能有同样的问题。
我通过明确告诉 Python 在哪里可以找到 xgboost 库来解决它。
原因是我有多个名为 xgboost.py 的脚本。 Python 可能错误地导入了其中一个,因此找不到“XGBRegressor”的定义。
这是我使用的命令:
export PYTHONPATH=PATH_TO_YOUR_setup.py_file
对我来说,PATH_TO_YOUR_setup.py_file 是 ~/xgboost/python-package
【讨论】:
【参考方案2】:由于您的 dir
调用基本上缺少所有内容,我怀疑无论您从哪里开始脚本,都有一个 xgboost
子文件夹,其中有一个空的 __init__.py
,这是您的 import
首先找到的.
【讨论】:
我检查了保存 .py 文件的文件夹结构,其中没有任何 xgboost 文件夹。有没有办法检查或获取调用 xgboost 的路径。 我在 Mac 上,我在整个磁盘上对 xgboost 进行了文件夹搜索,但看不到名为 xgboost 的文件夹。 python包存放在磁盘的什么位置? 在黑暗中有点过头了。如果你使用 anaconda,它应该将包放在[your anaconda install folder]/lib/python3.5/site-packages
【参考方案3】:
我在 windows10 64 位(秋季创建者更新)上使用 Python 3.6.2 和 Anaconda 1.6.8 时遇到了完全相同的问题
为了让它工作,这是我所做的:
1/ 在选定的环境中从 anaconda 中卸载 xgboost。
2/手动删除C:\ProgramData\Anaconda3中的xgboost目录
3/ 从This page下载xgboost
4/ 从 Anaconda 启动命令提示符(当然是从您希望 xgboost 进入的环境)
5/ CD 到您下载 whl 文件的目录并输入:pip install xgboost‑0.6+20171121‑cp36‑cp36m‑win_amd64.whl(或您下载的文件的确切名称)
我做了所有这些步骤,xgboost 工作正常
【讨论】:
它也适用于 Windows 吗?您提供的链接似乎只有.whl
for windows。
我只在 w10 上使用过,它工作正常,但我不知道是否适用于其他操作系统【参考方案4】:
就我而言,我很容易解决这个问题
from xgboost import XGBRegressor
【讨论】:
【参考方案5】:我必须确保遵循 xgboost 网站上的所有下载说明。安装和编译后,我忘了运行这些。 https://xgboost.readthedocs.io/en/latest/build.html#python-package-installation
【讨论】:
【参考方案6】:可能有很多文件同名xgboost
。这就是为什么python会尝试加载其中一个而不是原始包文件。
提示
检查您的工作目录,看看是否有任何名称为xgboost.py
的py 文件。
如果是这样,请将名称更改为其他名称。
【讨论】:
以上是关于AttributeError:模块“xgboost”没有属性“XGBRegressor”的主要内容,如果未能解决你的问题,请参考以下文章
AttributeError:模块 'dbus' 没有属性 'lowlevel'
AttributeError:模块'keras'没有属性'initializers'