R语言 如何在运行H2O自动机时按数据集中的ID号进行分组

k2fxgqgv  于 2023-06-27  发布在  其他
关注(0)|答案(1)|浏览(95)

我正在使用H2O包进行机器学习。目标是使用我的数据集来估计数据集中每个参与者的新预测年龄。我的代码设置是删除数据集中所有不必要的列,如性别,种族,其他人口统计数据等,只留下年龄和一些我想与之比较的生物标志物。
我的第一次尝试进行得很顺利,因为在去掉列之前,我使数据集具有横截面(限制每个参与者一个条目),所以我不需要担心分组。不过,我也想纵向测试一下。在我的原始数据集中(在使其成为横截面之前),我有一个名为“ID”的列,如果我们研究中的参与者多次访问,有时行具有相同的ID。我想把这一点考虑到机器学习中,但我想知道如何做到这一点。
下面是我的横截面分析代码。我不确定是否需要在此处或之前更改因子或使用as.h2o时调整任何内容

aml <- h2o.automl(y = "age", 
               training_frame = train_long2, 
               max_models = 300, 
               stopping_metric = "MSE", 
               nfolds = 5, 
               seed = 1, 
               include_algos = "GBM", 
               sort_metric = "MSE", 
               keep_cross_validation_predictions = TRUE)
ggazkfy8

ggazkfy81#

我们将原始帧称为train_log2。
如果你想挑选出H2OFrame中具有某些特征(如ID == 10)的部分,你可以执行以下操作:
train_log2_ID10 <- train_log2[train_log2$ID==10,]
现在,您可以像以前一样使用train_log2_ID10调用和构建模型,只需在ID为10时使用数据集行。您可以执行任何类型的逻辑组合,例如train_log2$ID==10|| train_log2$ID==20或任何你喜欢的。

相关问题