2017-09-02 106 views
2

我拉了一些运行在kaggle(linux)上的ML代码,并试图在Windows机器上的jupyter笔记本中运行它。下面是代码(有些):XGBOOST - DMATRIX

##### RUN XGBOOST 
import xgboost as xgb 

print("\nSetting up data for XGBoost ...") 
# xgboost params 
xgb_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 = 250 
print("num_boost_rounds="+str(num_boost_rounds)) 

# train model 
print("\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' 

这是奇怪,因为我拉xgboost车型从Linux机器到窗口所有的时间。我无法找到任何有关如何修复互联网的信息,所以我想知道是否有人知道如何解决?

回答

2

我们可能有同样的问题。

我通过明确地告诉Python在哪里找到xgboost库来解决它。

原因是我有多个名为xgboost.py的脚本。 Python可能错误地导入了其中一个,所以它找不到'DMatrix'的定义。

这是我用过的命令:

export PYTHONPATH=~/xgboost/python-package 

你应该改变“〜/ xgboost /蟒蛇包”到您的/xgboost/python-package/setup.py文件所在的文件夹。

+0

解决了这个问题。 –