从H2OModel获取预测变量数据类型

时间:2018-09-20 18:31:17

标签: r types h2o s4

我知道我可以通过H2OModel插槽访问@parameters的预测变量名称,但是我可以访问预测变量数据类型

我正在尝试为h2OModel生成输入模式,现在我必须交叉引用training_frame并从那里获取数据类型。显然,如果我的training_frame不再在内存中,这将是一个问题。

这是我目前的做法:

getInputSchema <- function(model){
  require(jsonlite)
  require(h2o)
  training_frame <- h2o.getFrame(model@parameters$training_frame)
  toJSON(
      setNames( h2o.getTypes(training_frame), 
                names(training_frame)        
               )[model@parameters$x], 
      auto_unbox = T 
      )
}

以及如何使用它的示例:

#--- Example dataset ----
library(h2o)
library(data.table)
options('h2o.use.data.table'=TRUE)
library(rpart.plot) # for 'ptitanic' dataset
h2o.init()
data(ptitanic, package='rpart.plot')
survival <- as.h2o(
              setDT( ptitanic)[, `:=`( age   = as.numeric(age),
                                       sibsp = as.integer(sibsp),
                                       parch = as.integer(parch)
                                     ) ] 
            )
#--- Example model -----
fit <- 
  h2o.gbm( x = c('pclass','sex','age','sibsp','parch'),
           y = 'survived',
           training_frame = survival
          )
#--- Example use ----
getInputSchema(fit)
# {"pclass":"enum","sex":"enum","age":"real","sibsp":"int","parch":"int"}

我正在寻找一种解决方案,该解决方案可应用于缺少training_frame中引用的数据集的现有模型。

0 个答案:

没有答案