Python xgboost:内核死亡

时间:2018-07-04 01:48:45

标签: 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 = 2max_depth:2eta:1,并且在计算上不昂贵。不确定发生了什么。

如前所述,我以前能够成功运行两个块。我关闭了所有其他笔记本电脑,并重新启动计算机,但情况没有好运。我正在通过Macbook Pro上的Anaconda Navigator启动jupyter

-更新- 当我在xgboost训练单元下面选择一个单元,然后选择:Cells-> Run All Above时,内核将始终死在xgboost训练线上。这连续发生了约40-50次。我尝试了很多次,因为我正在更改代码,以为以后可以解决xgboost问题。

后来,我一次又一次地运行相同的单元格,xgboost在我第一次尝试此操作后以及以后每次都很好地完成了。我不知道为什么会这样,但是很高兴知道。

3 个答案:

答案 0 :(得分:11)

我遇到了类似的问题。这为我解决了这个问题。

<select class="form-control" name="country" id="country">
    @foreach($countries as $key => $country)
        <option value="{{$key}}" {{ Auth::user()->country == $country ? 'selected' : '' }}>{{ $country}}</option>
    @endforeach
</select>

答案 1 :(得分:1)

我有同样的问题。愚蠢的事情是它运行正常,只是突然决定它要疯了!我尝试了@PandaRocks的解决方案。那没起效。我尝试重新启动。 甚至看到了一些有关删除库文件here的内容。

最终按照here所述,通过使用conda重新安装XGBoost来解决该问题:

$ conda install -c conda-forge xgboost

答案 2 :(得分:0)

检查数据中是否有“Inf”值。使用“pct_change()”时经常出现这种情况。使用 Inf 值时,xgBoost 会使内核崩溃。