base_num_knots_0 set to 20, used to be 200base_num_knots_1 set to 10, used to be 50prediction_bounds (a fit_hal argument in fit_control
list), which would error when it was specified as a numeric vector. Also,
added a check to assert this argument is correctly specified, and tests
to ensure a numeric vector of bounds is provided.fit_control list arguments in fit_hal. Users can still specify
additional arguments to cv.glmnet and glmnet in this list.weights as a formal argument in fit_hal, opposed to an optional
argument in fit_control, to facilitate specification and avoid confusion.
This increases flexibility with SuperLearner wrapper SL.hal9001 as well;
fit_control can now be customized with SL.hal9001.As of September 2021:
num_knots = 1, ensuring that
the minimal number of knots is chosen when num_knots = 1. This results in
HAL agreeing with (main terms) glmnet when smoothness_orders = 1 and
num_knots = 1.h function. It is
possible to specify, e.g., h(X) + h(W) which will generate and concatenate
the two basis function terms.As of April 2021:
fit_hal is now a first order smoothed HAL with binning.formula_hal, fit_hal and predict; and
added fit_control and formula_control lists for arguments. Moved much of
the text to details sections, and shortened the argument descriptions.summary to support higher-order HAL fit interpretations.fit_hal for missingness and dimensionality correspondence
between X, Y, and X_unpenalized. These checks lead to quickly-produced
errors, opposed to enumerating the basis list and then letting glmnet error
on something trivial like this.fit_hal, so formula is now provided
directly to fit_hal and formula_hal is run within fit_hal. Due to these
changes, it no longer made sense for formula_hal to accept data, so it
now takes as input X. Also, the formula_fit_hal function was removed as
it is no longer needed.Rcpp has been
discontinued. Accordingly, the "lassi" option and argument fit_type have
been removed from fit_hal.lambda.min.ratio as a fit_control argument to fit_hal. We've
seen that not setting lambda.min.ratio in glmnet can lead to no lambda
values that fit the data sufficiently well, so it seems appropriate to
override the glmnet default.As of February 2021:
smoothness_orders argument
smoothness_orders is a vector of length 1 or length ncol(X).smoothness_orders is of length 1 then its values are recycled to form
a vector of length ncol(X).ncol(X), the ith element gives the level of
smoothness for the variable corresponding to the ith column in X.num_knots argument is a vector up to max_degree controlling the
degree-specific binning.formula_hal which allows a formula specification of a HAL model.As of November 2020:
glmnet().stats::family() objects to be
passed through to calls to glmnet().fit_hal() by unifying the redundant hal_lasso and
glmnet_lasso slots into the new lasso_fit slot.summary.hal9001.DESCRIPTION.As of September 2020:
summary method for interpreting HAL regressions
(https://github.com/tlverse/hal9001/pull/64).As of June 2020:
glmnet in which it ignores
the argument lambda.min.ratio when family = "gaussian" is not set.As of March 2020