我正在尝试在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进行预测,而不是依赖于网状结构进行预测。但是,这些预测显然是不正确的。
答案 0 :(得分:0)
问题是在Python中,xgboost需要np.array作为输入。因此,您必须使用Dmatrix函数转换输入。
类似这样的东西:
dtrain <- xgb.DMatrix(train$data, label=train$label)