2017-09-02 109 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

解決了這個問題。 –