Я сделал классификационную модель, которая была сохранена с использованием
bst.save_model('final_model.model')
в другом файле. Я загружаю модель и выполняю тестирование на моих тестовых данных, используя:
bst = xgb.Booster() # init model
bst.load_model('final_model.model') # load data
ypred = bst.predict(dtest) # make prediction
Поскольку яиспользуйте kfold в моем обучающем процессе, но мне нужно использовать весь тестовый файл для тестирования (чтобы не было разбиения kfold), я не могу проверить, получаю ли я все те же результаты, что и при загрузке модели в новый файл.Это сделало меня любопытным, как будто был способ напечатать мои гиперпараметры загруженных моделей.После долгих поисков я нашел способ сделать это в R с помощью xgb.parameters(bst)
или, возможно, также xgb.attr(bst)
- но я не нашел способа сделать это в Python.Поскольку я не использую RI, я не проверял вышеуказанные строки, но из документации кажется, что я делаю то, что мне нужно: выводить гиперпараметры в загруженной модели.Так можно ли это сделать в Python с помощью xgboost?
EDIT: Я вижу, что если я вместо этого напишу ypred = bst.predict(dtest, ntree_limit=bst.best_iteration)
, я получу ошибку 'Booster' object has no attribute 'best_iteration'
.Похоже, загруженная модель не помнит все мои гиперпараметры.Если я напишу bst.attributes()
, я смогу заставить его вывести номер лучшей итерации и его оценку eval, но я не вижу, как вывести фактические используемые гиперпараметры.