web-dev-qa-db-fra.com

Python xgboost: le noyau est mort

Le noyau python de mon cahier Jupyter continue de mourir. J'ai déjà exécuté avec succès tout le code suivant. Actuellement, il y a des problèmes. Premièrement, je vais vous montrer le bloc de code que je suis capable d'exécuter avec succès. :

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

où mes données sont petites:

X_train_imp_sub.shape
(1365, 18)

cependant, le noyau de mon bloc-notes continue de mourir sur ce morceau:

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

Lorsque je le sépare et que j'exécute ligne par ligne, le noyau semble mourir sur la ligne xgb.train().

Les données sont petites. Les paramètres xgboost doivent être conservateurs (c'est-à-dire num_boost_round = 2, max_depth:2, eta:1 Et ne doivent pas être coûteux en calcul. Je ne sais pas ce qui se passe.

Comme indiqué précédemment, j'ai pu exécuter les deux blocs avec succès auparavant. J'ai arrêté tous les autres ordinateurs portables et redémarré mon ordinateur sans succès. Je lance jupyter via Anaconda Navigator sur un Macbook Pro.

- MISE À JOUR - Lorsque je sélectionnais une cellule sous ma xgboost cellule d'entraînement, puis sélectionnais: Cells -> Run All Above, Le noyau mourrait toujours sur le xgboost ligne de formation. Cela s'est produit environ 40 à 50 fois de suite. J'ai essayé cela plusieurs fois parce que j'apportais des modifications au code, pensant que je résoudrais le problème xgboost plus tard.

Plus tard, j'ai exécuté les mêmes cellules une par une et le xgboost s'est bien terminé la première fois que j'ai essayé cela et à chaque fois par la suite. Je ne sais pas pourquoi cela se produit mais ce serait bien de savoir.

12
user2205916

J'avais un problème similaire. Cela m'a arrangé.

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