# interaction_pairs¶

• Available in: GLM, GAM, CoxPH

• Hyperparameter: no

## Description¶

By default, interactions between predictor columns are expanded and computed on the fly as GLM iterates over dataset. The interaction_pairs parameter allows you to define a list of specific interactions to include instead of all interactions.

Note that adding a list of interactions to a model changes the interpretation of all of the coefficients. For example, a typical predictor has the form ‘response ~ terms’ where ‘response’ is the (numeric) response vector, and ‘terms’ is a series of terms that specify a linear predictor for ‘response’. For ‘binomial’ and ‘quasibinomial’ families in GLM, the response can also be specified as a ‘factor’ (when the first level denotes failure and all other levels denote success) or as a two-column matrix with the columns giving the numbers of successes and failures.

When using this parameter, specify a list of pairwise columns that should interact. When specified, GLM will compute interactions between

Note that this option is mutually exclusive with interactions.

## Example¶

library(h2o)
h2o.init()
# import the airlines dataset

# specify the columns to include
XY <- names(df)[c(1, 2, 3, 4, 6, 8, 9, 13, 17, 18, 19, 31)

# specify the predictor column indices to interact
interactions <- XY[c(5, 7, 9)]

# train the model and build the coefficients table
m1 <- h2o.glm(x = XY[-length(XY)],
y = XY[length(XY)],
training_frame = df,
interactions = interactions,
lambda_search = TRUE,
family = "binomial")
m1_coefs <- m1@model$coefficients_table # train the model with the interaction pairs m2 <- h2o.glm(x = XY[-length(XY)], y = XY[length(XY)], training_frame = df, interaction_pairs = list( c("CRSDepTime", "UniqueCarrier"), c("CRSDepTime", "Origin"), c("UniqueCarrier", "Origin") ), lambda_search = TRUE, family = "binomial") m2_coefs <- m2@model$coefficients_table

import(h2o)
h2o.init()
from h2o.estimators.glm import H2OGeneralizedLinearEstimator

# import the airlines dataset

# specify the columns to include
XY = [df.names[i-1] for i in [1,2,3,4,6,8,9,13,17,18,19,31]]

# specify the predictor column indices to interact
interactions = [XY[i-1] for i in [5,7,9]]

# train the model and build the coefficients table
m = H2OGeneralizedLinearEstimator(lambda_search=True,
family="binomial",
interactions=interactions)
m.train(x=XY[:len(XY)], y=XY[-1],training_frame=df)
coef_m = m._model_json['output']['coefficients_table']

# define specific interaction pairs
interaction_pairs = [("CRSDepTime", "UniqueCarrier"),
("CRSDepTime", "Origin"),
("UniqueCarrier", "Origin")]

# train the model with the interaction pairs
mexp = H2OGeneralizedLinearEstimator(lambda_search=True,
family="binomial",
interaction_pairs=interaction_pairs)
mexp.train(x=XY[:len(XY)], y=XY[-1],training_frame=df)
coef_mexp = mexp._model_json['output']['coefficients_table']