代码之家  ›  专栏  ›  技术社区  ›  EngrStudent

如何指定h2o中的相互作用。glm?

  •  0
  • EngrStudent  · 技术社区  · 6 年前

    背景:
    在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”之外的标签。如果你想到一些相关的东西,你能在评论中提出建议吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   data princess    6 年前

    对于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 .