如何在 h2o.glm 中指定交互?

How do I specify an interaction in h2o.glm?

背景:
在 R 中,使用线性模型,我可以写一个公式

est <- lm(Y~1+A+B+C+D:A+E:D+E:F+B:A+B:D+C:A+C:D+C:B, data=mydata)

如果"Y"恰好是二项式,那我也可以这样写:

est <- glm(Y~1+A+B+C+D:A+E:D+E:F+B:A+B:D+C:A+C:D+C:B, data=mydata, family = binomial)

但是... 当我去h2o.glm时,我必须使用"x=.., y=.."形式。

my_glm.hex <- h2o.glm(y=y_idx,x=x_idx,
                  training_frame = "my_train",
                  validation_frame = "my_valid",
                  model_id = "my_glm.hex",
                  family = "binomial",
                  lambda_search = TRUE,
                  balance_classes = TRUE)

问题:
如何添加一个公式,使我能够使用 h2o.glm?

拟合具有交互作用的广义线性模型 (glm)

附录:
我不确定这里应该使用 'r'、'h2o' 和 'fitting' 之外的哪些标签。如果您想到相关的内容,能否在评论中提出建议?

对于 h2o.glm,您只需添加一个 interactions 参数,它采用 x 中您要包含其交互的属性列表的形式。在您的情况下,它可能看起来像:

# supposing x contains variables A, B, C, etc.
interacting_variables <- c('B', 'D', 'E', 'F')

my_glm.hex <- h2o.glm(y=y_idx,x=x_idx,
                      training_frame = "my_train",
                      validation_frame = "my_valid",
                      model_id = "my_glm.hex",
                      family = "binomial",
                      lambda_search = TRUE,
                      balance_classes = TRUE,
                      interactions = interacting_variables)

对于上面的列表,将计算四个变量的所有成对组合。

您可以在 h2o site 上找到更多信息。