prediction_bounds (afit_hal argument infit_control list), whichwould error when it was specified as a numeric vector. Also, added acheck to assert this argument is correctly specified, and tests toensure a numeric vector of bounds is provided.fit_control list arguments infit_hal. Users can still specify additional arguments tocv.glmnet andglmnet in this list.weights as a formal argument infit_hal, opposed to an optional argument infit_control, to facilitate specification and avoidconfusion. This increases flexibility with SuperLearner wrapperSL.hal9001 as well;fit_control can now becustomized withSL.hal9001.As of September 2021: * Minor change to how binning is performed whennum_knots = 1, ensuring that the minimal number of knots ischosen whennum_knots = 1. This results in HAL agreeingwith (main terms)glmnet whensmoothness_orders = 1 andnum_knots = 1. *Revised formula interface with enhanced capabilities, allowingspecifciation of penalization factors, smoothness_orders, and the numberof knots for each variable, for every single term separately using thenewh function. It is possible to specify, e.g.,h(X) + h(W) which will generate and concatenate the twobasis function terms.
As of April 2021: * The default offit_hal is now afirst order smoothed HAL with binning. * Updated documentation forformula_hal,fit_hal andpredict;and addedfit_control andformula_controllists for arguments. Moved much of the text to details sections, andshortened the argument descriptions. * Updatedsummary tosupport higher-order HAL fit interpretations. * Added checks tofit_hal for missingness and dimensionality correspondencebetweenX,Y, andX_unpenalized.These checks lead to quickly-produced errors, opposed to enumerating thebasis list and then lettingglmnet error on somethingtrivial like this. * Modified formula interface infit_hal,soformula is now provided directly tofit_halandformula_hal is run withinfit_hal. Due tothese changes, it no longer made sense forformula_hal toacceptdata, so it now takes as inputX. Also,theformula_fit_hal function was removed as it is no longerneeded. * Support for the custom lasso procedure implemented inRcpp has been discontinued. Accordingly, the"lassi" option and argumentfit_type have beenremoved fromfit_hal. * Re-addedlambda.min.ratio as afit_control argument tofit_hal. We’ve seen that not settinglambda.min.ratio inglmnet can lead to nolambda values that fit the data sufficiently well, so itseems appropriate to override theglmnet default.
As of February 2021: * Supporthigher order HAL via the newsmoothness_orders argument *smoothness_ordersis a vector of length 1 or lengthncol(X). * Ifsmoothness_orders is of length 1 then its values arerecycled to form a vector of lengthncol(X). * Given such avector of lengthncol(X), the ith element gives the levelof smoothness for the variable corresponding to the ith column inX. * Degree-dependant binning. Higher order terms arebinned more coarsely; thenum_knots argument is a vector uptomax_degree controlling the degree-specific binning. *Addsformula_hal which allows a formula specification of aHAL model.
As of November 2020: * Allow support for Poisson family toglmnet(). * Begins consideration of supporting arbitrarystats::family() objects to be passed through to calls toglmnet(). * Simplifies output offit_hal() byunifying the redundanthal_lasso andglmnet_lasso slots into the newlasso_fitslot. * Cleans up of methods throughout and improves documentation,reducing a few redundancies for cleaner/simpler code insummary.hal9001. * Adds link to DOI of the publishedJournal of Open Source Software paper inDESCRIPTION.
As of September 2020: * Adds asummary method forinterpreting HAL regressions(https://github.com/tlverse/hal9001/pull/64). * Adds a software paperfor publication in theJournal of Open Source Software(https://github.com/tlverse/hal9001/pull/71).
As of June 2020: * Address bugs/inconsistencies reported in theprediction method when trying to specify a value of lambda not includedin initial fitting. * Addresses a bug arising from a silent failure inglmnet in which it ignores the argumentlambda.min.ratio whenfamily = "gaussian" isnot set. * Adds a short software paper for submission to JOSS. * Minordocumentation updates.
As of March 2020 * First CRAN release.