在R中保存并加载所有h2o交叉验证模型
我试图找到一种简单的方法来保存h2o使用R生成的所有交叉验证模型。 运行Nfold=5的任何类型的模型时,我可以看到web界面(localhose:54321)中列出的每个CV模型的外观如下:在R中保存并加载所有h2o交叉验证模型,r,h2o,R,H2o,我试图找到一种简单的方法来保存h2o使用R生成的所有交叉验证模型。 运行Nfold=5的任何类型的模型时,我可以看到web界面(localhose:54321)中列出的每个CV模型的外观如下: model_id model_id_cv_1 model_id_cv_2 model_id_cv_3 model_id_cv_4 model_id_cv_5 我用这个来保存它: saveModel(model_id,path=“mypath”)给出 但是h2o.saveModel(model\u id
model_id
model_id_cv_1
model_id_cv_2
model_id_cv_3
model_id_cv_4
model_id_cv_5
我用这个来保存它:
saveModel(model_id,path=“mypath”)给出
但是h2o.saveModel(model\u id\u cv\u 1,path=“mypath”)
但当我重新加载它时,我丢失了所有交叉验证的模型
似乎可以通过webinterface将每个CV模型保存为POJO,但我更希望能够在R中通过编程实现。在h2o.saveModel()的早期版本中,似乎曾经有一个“save_CV”选项,但这个选项似乎已被删除
这可能吗?按具有CV配置的主模型ID保存模型时,保存的模型中确实包含所有交叉验证的模型。如果您将单个交叉验证模型保存在磁盘上,则它们都将被视为单个模型,并且您不会同时看到它们 以下是一个例子: 让我们以5倍的倍数构建GBM模型:
prostate_df = h2o.importFile("https://raw.githubusercontent.com/Avkash/mldl/master/data/prostate.csv")
response = "CAPSULE"
features = setdiff(h2o.colnames(prostate_df), response)
prostate_gbm_cv5_model = h2o.gbm(x = features, y = response, training_frame = prostate_df, nfolds = 5)
您可以从此对象获取所有模型:
h2o.cross_validation_models(prostate_gbm_cv5_model)
您可以访问各个CV模型,如下所示:
h2o.cross_validation_models(prostate_gbm_cv5_model][[1]]
h2o.cross_validation_models(prostate_gbm_cv5_model)[[1]]@model_id
您将在此处获得交叉折叠模型总数:
length(h2o.cross_validation_models(prostate_gbm_cv5_model))
让我们将模型保存到磁盘:
h2o.saveModel(object = prostate_gbm_cv5_model, path = "/Users/avkashchauhan/Downloads")
允许从磁盘加载模型:
model_from_disk = h2o.loadModel("/Users/avkashchauhan/Downloads/GBM_model_R_1512067532473_2966")
您将在此处获得所有CV模型:
h2o.cross_validation_models(model_from_disk)
获取CV模型计数:
length(h2o.cross_validation_models(model_from_disk))
单独访问CV模型:
h2o.cross_validation_models(model_from_disk)[[1]]
h2o.cross_validation_models(model_from_disk)[[1]]@model_id