web-dev-qa-db-ja.com

Python xgboost:カーネルが死んだ

Jupyterノートブックのpythonカーネルは死に続けます。以前は次のコードをすべて正常に実行しました。現在、問題があります。最初に、正常に実行できるコードチャンクを示します:

_import xgboost as xgb
xgtrain = xgb.DMatrix(data = X_train_sub.values, label = Y_train.values)       # create dense matrix of training values
xgtest  = xgb.DMatrix(data = X_test_sub.values,  label = Y_test.values)        # create dense matrix of test values
param   = {'max_depth':2, 'eta':1, 'silent':1, 'objective':'binary:logistic'}  # specify parameters via map
_

私のデータが小さい場合:

_X_train_imp_sub.shape
(1365, 18)
_

しかし、私のノートブックのカーネルはこのチャンクで死に続けます:

_xgmodel = xgb.train(param,  xgtrain, num_boost_round = 2)                      # train the model
predictions = xgmodel.predict(xgtest)                                          # make prediction
from sklearn.metrics import accuracy_score                                   
accuracy = accuracy_score(y_true = Y_test, 
                          y_pred = predictions.round(), 
                          normalize = True) # If False, return # of correctly classified samples. Else, return fraction of correctly classified samples
print("Accuracy: %.2f%%" % (accuracy * 100.0))
_

バラバラにして行単位で実行すると、カーネルはxgb.train()行で停止しているように見えます。

データが少ない。 xgboostパラメータは保守的(つまり、_num_boost_round = 2_、_max_depth:2_、_eta:1_)であり、計算コストが高くない必要があります。

前に述べたように、以前は両方のチャンクを正常に実行できました。他のすべてのノートブックをシャットダウンし、コンピューターを再起動しました。 Macbook ProのAnaconda Navigatorからjupyterを起動しています。

-更新-xgboostトレーニングセルの下のセルを選択し、選択した場合:Cells-> _Run All Above_、カーネルは常にxgboostトレーニングライン。これは40〜50回連続して発生しました。後でxgboostの問題を解決すると思って、コードを変更していたため、何度も試しました。

後で、同じセルを1つずつ実行しましたが、xgboostは、これを初めて試した後も毎回正常に完了しました。なぜこれが起こるのかわかりませんが、知っておくといいでしょう。

12
user2205916

私は同様の問題を抱えていました。これは私のためにそれを修正しました。

import os
os.environ['KMP_DUPLICATE_LIB_OK']='True'
from xgboost import XGBClassifier
17
PandasRocks