如何在嵌套数据帧上训练多个h2o模型?

问题描述 投票:0回答:1

我想知道是否有一种便捷的方法来从R中的嵌套数据框中训练多个h2o模型。假设我们有一个具有以下结构的数据集,我想为每个物种训练一个模型:

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)

enter image description here

是否有一种方法可以将数据集加载并使用到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")

然后,提取并保存经过训练的模型,并生成一个映射表,这样我就知道哪个模型属于哪个物种。

我想知道是否有一种便捷的方法来从R中的嵌套数据框中训练多个h2o模型。假设我们有一个具有以下结构的数据集,我想为每个模型训练一个模型...

r h2o
1个回答
0
投票

使用purrr,您可以将其嵌入到小标题中,但是如果您要进行预测,则可能需要使用map2,这比我想的要复杂得多:

© www.soinside.com 2019 - 2024. All rights reserved.