veb_boost: Performs VEB-Boosting

Description Usage Arguments Details Value

View source: R/veb_boost.R

Description

Solves the VEB-Boost regression problem using the supplied inputs

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
veb_boost(
  X,
  Y,
  fitFunctions = fitFnSusieStumps,
  predFunctions = predFnSusieStumps,
  constCheckFunctions = constCheckFnSusieStumps,
  growTree = TRUE,
  k = 1,
  d = 1,
  family = c("gaussian", "binomial", "multinomial"),
  tol = length(Y)/10000,
  verbose = TRUE,
  mc.cores = 1
)

Arguments

X

is a list of predictor objects with either 1 or k elements. If it contains 1 element, then the same predictor is used for each base learner. Otherwise, the k sub-trees that we add together each get their own X. Each predictor can take any form, so long as the user-supplied fitFunctions and predFunctions know how to use them.

Y

is a numeric vector response

fitFunctions

is either a single fitting function, or a list of length 'k' of fitting functions to be used in each term on the sum of nodes

predFunctions

is either a single prediction function, or a list of length 'k' of prediction functions to be used in each term of the sum of nodes

constCheckFunctions

is either a single constant check function, or a list of length 'k' of constant check functions to be used in each term of the sum of nodes

growTree

is a logical for if we should grow the tree after convergence (TRUE), or only use the initial tree structure (FALSE)

k

is an integer for how many terms are in the sum of nodes

d

is either an integer, or an integer vector of length 'k' for the multiplicative depth of each of the k terms NOTE: This can be dangerous. For example, if the fit starts out too large, then entire branhces will be fit to be exactly zero. When this happens, we end up dividing by 0 in places, and this results in NAs, -Inf, etc. USE AT YOUR OWN RISK

family

is what family the response is

tol

is a positive scalar specifying the level of convergence to be used

verbose

is a logical flag specifying whether we should report convergence information as we go

mc.cores

is the number of cores to use in mclapply, only used in family == "multinomial", and only supported on UNIX systems, where mclapply works. NOT CURRENTLY SUPPORTED

Details

Given a pre-specified arithmetic tree structure

T(μ_1, …, μ_L)

, priors

μ_l \sim g_l(\cdot)

, and inputs for the response, VEB-Boosting is performed.

A cyclic CAVI scheme is used, where we cycle over the leaf nodes and update the approxiomation to the posterior distribution at each node in turn.

We start with the arithmetic tree structure

T(μ_1, …, μ_L) = ∑_{i=1}^k ∏_{j=1}^{d_k} μ_{i, j}

Value

A VEB_Boost_Node object with the fit


andrewg3311/VEB.Boost documentation built on March 21, 2020, 12:16 a.m.