Развертывание модели XGBoost, созданной Amazon sagemaker, в среде R

Я пытаюсь развернуть XGBoost модель, которая обучается с помощью Amazon Sagemaker, в R среда. Модель, созданная Sagemaker, сохраняется как Python Рассол объекта

С использованием {reticulate} пакет в R, я могу импортировать модель в R. Тем не менее, использование модели локально в R дает очень разные прогнозы по сравнению с использованием модели непосредственно на Amazon sagemakerна том же наборе данных тестирования. Я подозреваю, что могут быть проблемы с преобразованием XGBoost модель, хранящаяся в python, в модель, используемую в R. Вот соответствующий код, который я использовал для преобразования:

library(reticulate)
library(xgboost)

model <- py_load_object("sagemaker-model")
# save the model locally, to be reload into R
model$save_model("local-model")
model_R = xgb.load("local-model")

Причина, по которой я сначала сохраняю "модель sagemaker" локально, а затем использую R для ее считывания, заключается в том, что я хочу использовать нативный xgboost в R для прогнозирования, а не полагаться на сетку для прогнозов. Однако прогнозы явно не верны.

1 ответ

Проблема в том, что в Python xgboost требует np.array в качестве входных данных. Таким образом, вы должны преобразовать ввод с помощью функции Dmatrix.

Что-то вроде этого:

dtrain <- xgb.DMatrix(train$data, label=train$label)
Другие вопросы по тегам