Я пытаюсь сохранить модель 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