在R环境中部署Amazon sagemaker生成的XGBoost模型

时间:2019-01-17 03:50:10

标签: python r xgboost amazon-sagemaker

我正在尝试在XGBoost环境中部署使用Amazon sagemaker训练的R模型。贤者生成的模型存储为Python泡菜对象。

使用R中的{reticulate}包,我可以将模型导入R。但是,与直接在Amazon sagemaker上使用模型相比,在R中本地使用模型可以提供非常不同的预测,在同一测试数据集上。我怀疑将python存储的XGBoost模型转换为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-model”,然后使用R来读回它,是因为我想在R中使用本机xgboost进行预测,而不是依赖于网状结构进行预测。但是,这些预测显然是不正确的。

1 个答案:

答案 0 :(得分:0)

问题是在Python中,xgboost需要np.array作为输入。因此,您必须使用Dmatrix函数转换输入。

类似这样的东西:

dtrain <- xgb.DMatrix(train$data, label=train$label)