我从kaggle(Linux系统)上拉取了一些机器学习代码,并尝试在Windows机器上的Jupyter笔记本中运行它。这里是部分代码:
##### RUN XGBOOSTimport xgboost as xgbprint("\nSetting up data for XGBoost ...")# xgboost paramsxgb_params = { 'eta': 0.037, 'max_depth': 5, 'subsample': 0.80, 'objective': 'reg:linear', 'eval_metric': 'mae', 'lambda': 0.8, 'alpha': 0.4, 'base_score': y_mean, 'silent': 1}#### These lines were causing the folloing error on 9/1/2017:# AttributeError: module 'xgboost' has no attribute 'DMatrix'dtrain = xgb.DMatrix(x_train.values, y_train.values)dtest = xgb.DMatrix(x_test)num_boost_rounds = 250print("num_boost_rounds="+str(num_boost_rounds))# train modelprint( "\nTraining XGBoost ...")model = xgb.train(dict(xgb_params, silent=1), dtrain, num_boost_round=num_boost_rounds)print( "\nPredicting with XGBoost ...")xgb_pred1 = model.predict(dtest)print( "\nFirst XGBoost predictions:" )print(pd.DataFrame(xgb_pred1).head())
收到了以下错误:
---------------------------------------------------------------------------AttributeError Traceback (most recent call last)<ipython-input-7-a63b74bc35c6> in <module>() 17 #### These lines were causing the folloing error on 9/1/2017: 18 # AttributeError: module 'xgboost' has no attribute 'DMatrix'---> 19 dtrain = xgb.DMatrix(x_train.values, y_train.values) 20 dtest = xgb.DMatrix(x_test) 21 AttributeError: module 'xgboost' has no attribute 'DMatrix'
这很奇怪,因为我经常从Linux机器上拉取xgboost模型到Windows上。我在网上找不到任何关于如何修复的信息,所以我想知道是否有人知道如何修复这个问题?
回答:
我们可能遇到了相同的问题。
我通过明确告诉Python去哪里找到xgboost库来解决这个问题。
原因是我有多个名为xgboost.py的脚本。Python可能错误地导入其中一个,因此无法找到’DMatrix’的定义。
我使用的命令如下:
export PYTHONPATH=~/xgboost/python-package
您应该将’~/xgboost/python-package’改为您的/xgboost/python-package/setup.py文件所在的文件夹路径。