R: Сохранить обучаемую модель каретки xgboost как двоичную (.model) - PullRequest
0 голосов
/ 23 января 2020

Я создал свою модель xgboost. Он работал так:

my_model <- caret::train( ... )

В результате я получил этот объект:

> class(my_model)
[1] "train"         "train.formula"

В моей глобальной среде я вижу описание "my_model": печать экрана среды

Прежде всего - модель работает нормально, с ней все в порядке. Также я могу сохранить эту модель как объект .RDA или .RDS, и загрузка работает нормально. Но для моего коллеги, работающего с данными, мне нужно сохранить его в каком-то конкретном c двоичном формате - * .model.

Так что, когда я пытаюсь использовать функцию xgb.save непосредственно в 'my_model ', очевидно, он не работает, потому что его класс! =' xgb.Booster '. Я прогуглил его и прочитал, что мне нужно сохранить my_model $ finalModel. Выглядит хорошо - класс правильный:

> class(my_model$finalModel)
[1] "xgb.Booster"

Я могу сохранить модель вот так. Но его размер файла действительно маленький, и когда мой коллега пытается загрузить его в свою систему Spark, он выглядит как пустой файл. И оно действительно слишком маленькое:

> object_size(my_model$finalModel)
447 kB

Так что «my_model $ finalModel» - это лишь малая часть «my_model», которая не работает для меня.

Вопрос в том, как я могу сохранить его в формате * .model? Что я делаю не так?

...