Исключение при прогнозировании xgboost: невозможно инициализировать DMatrix из DMatrix - PullRequest
0 голосов
/ 27 ноября 2018

Я обучил модель xgboost на Python с использованием API-интерфейса Scikit-Learn Python и сериализовал ее с помощью библиотеки pickle.Я загрузил модель в ML Engine, но когда я пытаюсь делать онлайн-прогнозы, я получаю следующее исключение:

Prediction failed: Exception during xgboost prediction: can not initialize DMatrix from DMatrix

Пример json, который я использую для прогноза, следующий:

{  
   "instances":[  
      [  
         24.90625,
         21.6435643564356,
         20.3762376237624,
         24.3679245283019,
         30.2075471698113,
         28.0947368421053,
         16.7797359774725,
         14.9262079299572,
         17.9888028979966,
         15.3333284503293,
         19.6535308744024,
         17.1501961307627,
         0.0,
         0.0,
         0.0,
         0.0,
         0.0,
         509.0,
         497.0,
         439.0,
         427.0,
         407.0,
         1.0,
         1.0,
         1.0,
         1.0,
         1.0,
         2.0,
         23.0,
         10.0,
         58.0,
         11.0,
         20.0,
         23.3617021276596,
         23.3617021276596,
         23.3617021276596,
         23.3617021276596,
         23.3617021276596,
         23.9423076923077,
         26.3082269243683,
         23.6212606363851,
         22.6752334301282,
         27.4343583104833,
         34.0090408101173,
         11.1991944104063,
         7.33420726455092,
         8.15160392948917,
         11.4119236389594,
         17.9429092915607,
         18.0573102225845,
         32.8902876598084,
         -0.00286123032904149,
         -0.00286123032904149,
         -0.00286123032904149,
         -0.00286123032904149,
         -0.00286123032904149,
         -0.0028328611898017,
         0.0534138904223018,
         0.0534138904223018,
         0.0534138904223018,
         0.0534138904223018,
         0.0534138904223018,
         0.0531491870801522
      ]
   ]
}

Я использую следующий код для обучения моей модели:

def _train_model(X, y):
    clf = xgb.XGBClassifier(max_depth=6,
                            learning_rate=0.01,
                            n_estimators=100,
                            n_jobs=-1)
    clf.fit(X, y)
    return clf

Где X и y оба numpy.ndarray:

Type of X: <class 'numpy.ndarray'> Type of y: <class 'numpy.ndarray'>

Также яИспользую xgboost 0.72.1, Python 3.5 и ML runtime 1.9.

Кто-нибудь знает, что может быть источником проблемы?

Спасибо!

1 Ответ

0 голосов
/ 30 ноября 2018

Похоже, проблема связана с травлением.Я смог воспроизвести его и поработать над исправлением, но вы могли бы вместо этого попробовать экспортировать свой классификатор, как показано ниже?

clf._Booster.save_model('./model.bst') 

Это должно разблокировать вас на данный момент.Если это не так, не стесняйтесь обратиться к cloudml-feedback@google.com.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...