Как использовать сохраненную модель .rds h2o для последующего прогнозирования? - PullRequest
1 голос
/ 24 апреля 2019

Я создал модель R с использованием пакетов mlr и h2o, как показано ниже

library(h2o)
rfh20.lrn = makeLearner("classif.h2o.randomForest", predict.type = "prob")

Выполнены настройки модели, и модель запускает h2o JVM и подключает R к кластеру h2o, моделирование выполнено, и я сохранил модель какФайл .rds.

saveRDS(h2orf_mod, "h2orf_mod.rds")

Я делаю прогноз как

pred_h2orf <- predict(h2orf_mod, newdata = newdata)

, затем выключаю h2o

h2o.shutdown()

Позже я перезваниваю сохраненную модель

h2orf_mod <- readRDS("h2orf_mod.rds")

Инициируйте h2o, чтобы JVM подключила R к кластеру h2o

h2o.init()

Теперь модель из локального сохраненного местоположения, кластер не знает модель, когда я делаю прогноз, я получаю ошибкучто очевидно

ERROR: Unexpected HTTP Status code: 404 Not Found (url = http://localhost:54321/4/Predictions/models/DRF_model_R_1553297204511_743/frames/data.frame_sid_b520_1)

water.exceptions.H2OKeyNotFoundArgumentException
 [1] "water.exceptions.H2OKeyNotFoundArgumentException: Object 'DRF_model_R_1553297204511_743' not found in function: predict for argument: model"
Error in .h2o.doSafeREST(h2oRestApiVersion = h2oRestApiVersion, urlSuffix = page, : ERROR MESSAGE: Object 'DRF_model_R_1553297204511_743' not found in function: predict for argument: model

Могу ли я знать, как с этим справиться, загруженная сохраненная модель в кластер или что-то еще, поскольку каждый раз построение модели НЕ является эффективным способом.

1 Ответ

1 голос
/ 24 апреля 2019

Согласно комментарию, вместо сохранения модели с помощью saveDRS / readRDS, сохраните модель как

h2oModelsaved <- h2o.saveModel(object = h2orf_model, path = "C:/User/Models/") 

Повторно вызовите модель

h2o.init()
h2oModelLoaded <- h2o.loadModel(h2oModelsaved)

Преобразуйте тестовые данные в h2o Frame

newdata <- as.h2o(testdata)

Тогда вызовите прогноз

pred_h2orf2 <- predict(h2oModelLoaded, newdata = newdata)

Это прекрасно работает

...