【发布时间】:2020-08-11 03:04:14
【问题描述】:
我想知道是否有一种方便的方法可以从 R 中的嵌套数据框中训练多个 h2o 模型。 假设我们有一个具有以下结构的数据集,我想为每个 Species 训练一个模型:
dataset(iris)
iris_nested<-iris%>%
dplyr::mutate(dataset=dplyr::if_else(sample(1:nrow(iris))<100,"train","val"))%>%
dplyr::group_by(Species,dataset)%>%
tidyr::nest()%>%
tidyr::pivot_wider(names_from = dataset,values_from = data)
有没有一种方法可以将数据集加载和使用到 h2o 中,而无需构建循环来分解嵌套列表?我想避免为每一行创建 h2o 对象的步骤。
编辑: 例如,要使用其他数字输入预测 Sepal.Length,我将为第 i 行训练一个模型:
library(h2o)
h2o.init()
h2o_train<-as.h2o(iris_nested[["train"]][[i]])
h2o_val<-as.h2o(iris_nested[["val"]][[i]])
h2o_trainedmodel <- h2o.automl(
x = c("Sepal.Width","Petal.Length","Petal.Width"),
y = "Sepal.Length",
training_frame = h2o_train,
leaderboard_frame = h2o_val,
project_name = "run1")
之后,将训练好的模型提取保存,生成映射表,这样我就知道哪个模型属于哪个物种了。
【问题讨论】:
-
你能举例说明如何将单个数据集加载到 h2o 中吗?