plug_values
¶
Available in: GLM, GAM
Hyperparameter: yes
Description¶
When missing_values_handling="PlugValues"
, this option is used to specify a frame containing values that will be used to impute missing values. Whereas other options mean-impute rows or skip them entirely, plug values allow you to specify values of your own choosing in the form of a single row frame that contains the desired value.
Example¶
library(h2o)
h2o.init()
# import the cars dataset:
cars <- h2o.importFile("https://s3.amazonaws.com/h2o-public-test-data/smalldata/junit/cars_20mpg.csv")
cars$name <- NULL
# create an H2O frame using the mean of the cars dataset
means <- h2o.mean(cars, na.rm = TRUE, return_frame = TRUE)
# train GLM models, configuring plug_values in the second
glm1 <- h2o.glm(training_frame = cars, y = "cylinders")
glm2 <- h2o.glm(training_frame = cars,
y = "cylinders",
missing_values_handling = "PlugValues",
plug_values = means)
# determine if the coefficients are equal
h2o.coef(glm1)
Intercept economy displacement power weight
2.8316269982 0.0043748133 0.0141242460 -0.0030047140 0.0001410077
acceleration year economy_20mpg
-0.0146035179 0.0017987846 -0.3754994243
h2o.coef(glm2)
Intercept economy displacement power weight
2.8316269982 0.0043748133 0.0141242460 -0.0030047140 0.0001410077
acceleration year economy_20mpg
-0.0146035179 0.0017987846 -0.3754994243
import h2o
from h2o.estimators.glm import H2OGeneralizedLinearEstimator
from h2o import H2OFrame
from h2o.expr import ExprNode
h2o.init()
# import the cars dataset:
cars = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/junit/cars_20mpg.csv")
cars = cars.drop(0)
# create an H2O frame using the mean of the cars dataset
means = cars.mean()
means = H2OFrame._expr(ExprNode("mean", cars, True, 0))
# train a GLM
glm_means = H2OGeneralizedLinearEstimator(seed=42)
glm_means.train(training_frame=cars, y="cylinders")
# configure plug_values in a second model
glm_plugs1 = H2OGeneralizedLinearEstimator(seed=42,
missing_values_handling="PlugValues",
plug_values=means)
glm_plugs1.train(training_frame=cars, y="cylinders")
# check that the GLM coefficients are equal
glm_means.coef() == glm_plugs1.coef()
# modify the means to use with another GLM
not_means = 0.1 + (means * 0.5)
# configure plug values for the second model
glm_plugs2 = H2OGeneralizedLinearEstimator(seed=42,
missing_values_handling="PlugValues",
plug_values=not_means)
glm_plugs2.train(training_frame=cars, y="cylinders")
# confirm that plug values are not being ignored
glm_means.coef() != glm_plugs2.coef()