2017-05-30 51 views
0

我試圖直接從Java創建並保存生成的模型。 documentation指定如何在R和Python中執行此操作,但不是在Java中執行此操作。之前有人問過類似的question,但沒有提供真正的答案(除了鏈接到H2O doc,它不包含代碼示例)。直接從Java保存H2O模型

對於我目前的目的來說,獲得一些指針可以將以下參考代碼轉換爲Java就足夠了。我主要是從Maven repository尋找相關JAR進口指南。

import h2o 
h2o.init() 
path = h2o.system_file("prostate.csv") 
h2o_df = h2o.import_file(path) 
h2o_df['CAPSULE'] = h2o_df['CAPSULE'].asfactor() 
model = h2o.glm(y = "CAPSULE", 
      x = ["AGE", "RACE", "PSA", "GLEASON"], 
      training_frame = h2o_df, 
      family = "binomial") 
h2o.download_pojo(model) 
+0

我沒有你(還)的答案,但我創建了一個JIRA票把它添加到H2O用戶指南:https://0xdata.atlassian.net/browse/PUBDEV-4505 –

+0

謝謝@ErinLeDell。 – RDK

+0

你需要評分pojos和mojos的jar文件是h2o-genmodel(這是maven神器)。 – TomKraljevic

回答

0

會這樣的伎倆嗎?

public void saveModel(URI uri, Keyed<Frame> model) 
{ 
    Persist p = H2O.getPM().getPersistForURI(uri); 
    OutputStream os = p.create(uri.toString(), true); 
    model.writeAll(new AutoBuffer(os, true)).close(); 
} 

請確保URI具有適當的格式,否則H2O將打破一個npe。至於Maven,你應該能夠脫離h2o核心。

<dependency> 
     <groupId>ai.h2o</groupId> 
     <artifactId>h2o-core</artifactId> 
     <version>3.14.0.2</version> 
    </dependency>