Не удалось сохранить модель MultiOutputRegressor (XGBRegressor) с json - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь сохранить модель XGBoost через json, потому что я получил эту ошибку при запуске моей программы:

"Если вы загружаете сериализованную модель (например, pickle в Python) сгенерированный старым XGBoost, пожалуйста, экспортируйте модель, сначала вызвав Booster.save_model из этой версии, затем загрузите ее обратно в текущую версию. Есть простой скрипт для помощи процессу. "

Поэтому, когда я пытаюсь чтобы использовать model.save_model('model.json') с [этого веб-сайта] [1], он показывает эту ошибку:

У объекта 'MultiOutputRegressor' нет атрибута 'save_model'

Теперь я я пытаюсь сохранить модель в json, используя этот код, который я нашел [здесь] [2]:

import json
model_param = {}
model_param['coef'] = list(model.estimators_[0].coef_)
model_param['intercept'] = model.intercept_.tolist()

Но теперь у меня есть эта ошибка:

KeyError                                  Traceback (most recent call last)
<ipython-input-40-067263cd70f2> in <module>
      1 import json
      2 model_param = {}
----> 3 model_param['coef'] = list(model.estimators_[0].coef_)
      4 model_param['intercept'] = model.intercept_.tolist()
      5 

~/opt/anaconda3/lib/python3.7/site-packages/xgboost/sklearn.py in coef_(self)
    714                                  .format(self.booster))
    715         b = self.get_booster()
--> 716         coef = np.array(json.loads(b.get_dump(dump_format='json')[0])['weight'])
    717         # Logic for multiclass classification
    718         n_classes = getattr(self, 'n_classes_', None)

KeyError: 'weight'


  [1]: https://xgboost.readthedocs.io/en/latest/tutorials/saving_model.html
  [2]: https://medium.com/analytics-vidhya/save-and-load-your-scikit-learn-models-in-a-minute-21c91a961e9b
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...