2017-09-02 12 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()) 

は、次のエラーを受け取りました:私はLinuxマシンからのウィンドウにすべての時間をxgboostモデルを引っ張るので

--------------------------------------------------------------------------- 
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' 

これは奇妙です。私はどのようにインターネット上で修正するための情報を見つけることができないので、誰も修正する方法を知っているのだろうか?

答えて

2

おそらく同じ問題があります。

xgboostライブラリがどこにあるかをPythonに明示して解決しました。

私はxgboost.pyという名前のスクリプトが複数あるためです。 Pythonはそれらのうちの1つを間違ってインポートした可能性があります。そのため、「DMatrix」の定義を見つけることができません。

export PYTHONPATH=~/xgboost/python-package 

あなたの/xgboost/python-package/setup.pyファイルが置かフォルダに「〜/ xgboost /のpythonパッケージ」を変更する必要があります。ここでは

は、私が使用するコマンドです。

+0

問題を解決しました。 –

関連する問題