2017-12-07 5 views
1

ich einen einfachen Weg zu finden versuchen, alle Kreuzvalidierung Modelle von h2o mit R. speichert und laden alle h2o Kreuzvalidierung Modelle in R

Ausführen eine jede Art von Modell mit nfolds hergestellt speichern = 5 ich kann jedes CV-Modell siehe aufgelistet in der Web-Schnittstelle (localhose: 54321) auf der Suche etwas wie folgt aus:

model_id 
model_id_cv_1 
model_id_cv_2 
model_id_cv_3 
model_id_cv_4 
model_id_cv_5 

ich verwendet habe, das es zu retten: h2o.saveModel (MODEL_ID, path = "mypath ") gibt

Aber h2o.saveModel (model_id_cv_1, path = "mypath") Aber wenn ich es neu lade, verliere ich alle Kreuz-validierten Modelle.

Es scheint möglich, jedes CV-Modell als POJO über das Webinterface zu speichern, aber ich würde es lieber in R programmatisch machen. Es scheint, dass es in früheren Versionen von h2o eine 'save_cv'-Option gab .saveModel(), aber das wurde anscheinend entfernt.

Ist das möglich?

Antwort

0

Wenn Sie ein Modell mit Hauptmodell ID speichern, die CV-Konfiguration hat, hat das gespeicherte Modell die alle Cross-Modelle in sie validiert. Wenn Sie einzelne kreuzvalidierte Modelle auf der Festplatte speichern, werden sie alle als einzelne Modelle betrachtet und Sie werden sie nicht alle zusammen sehen. Hier

ein Beispiel:

Lets bauen GBM Modell mit 5 Falten:

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) 

Sie können von diesem Objekt alle Modelle erhalten:

h2o.cross_validation_models(prostate_gbm_cv5_model) 

Sie einzelne CV zugreifen können wie unten Modelle:

h2o.cross_validation_models(prostate_gbm_cv5_model][[1]] 
h2o.cross_validation_models(prostate_gbm_cv5_model)[[1]]@model_id 

Sie insgesamt Querfalz Modelle zählen hier bekommen:

length(h2o.cross_validation_models(prostate_gbm_cv5_model)) 

Lets Modell auf der Festplatte speichern:

h2o.saveModel(object = prostate_gbm_cv5_model, path = "/Users/avkashchauhan/Downloads") 

Lets Lastmodell von der Platte:

model_from_disk = h2o.loadModel("/Users/avkashchauhan/Downloads/GBM_model_R_1512067532473_2966") 

Sie alle bekommen die CV-Modelle hier:

h2o.cross_validation_models(model_from_disk) 

Get CV-Modelle zählen:

length(h2o.cross_validation_models(model_from_disk)) 

Zugang CV Modell individuell:

h2o.cross_validation_models(model_from_disk)[[1]] 
h2o.cross_validation_models(model_from_disk)[[1]]@model_id 
+0

Vielen Dank - das ist ganz gut gearbeitet hat. – AdrianD

Verwandte Themen