A General Framework For Bagging
bag provides a framework for bagging classification or regression models. The user can provide their own functions for model building, prediction and aggregation of predictions (see Details below).
## S3 method for class 'default': bag(x, y, B = 10, vars = ncol(x), bagControl = bagControl(), ...)
bagControl(fit = NULL, predict = NULL, aggregate = NULL, downSample = FALSE)
ldaBag plsBag nbBag ctreeBag svmBag nnetBag
## S3 method for class 'bag': predict(object, newdata = NULL, ...)
The function is basically a framework where users can plug in any model in to assess the effect of bagging. Examples functions can be found in
nnetBag. Each has elements
One note: when
vars is not
NULL, the sub-setting occurs prior to the
predict functions are called. In this way, the user probably does not need to account for the change in predictors in their functions.
train, classification models should use
type = "prob" inside of the
predict function so that
predict.train(object, newdata, type = "prob") will work.
bagproduces an object of class
fits a list with two sub-objects: the
fitobject has the actual model fit for that bagged samples and the
varsobject is either
NULLor a vector of integers corresponding to which predictors were sampled for that model
control a mirror of the arguments passed into
call the call B the number of bagging iterations dims the dimensions of the training set
## A simple example of bagging conditional inference regression trees: data(BloodBrain) treebag <- bag(bbbDescr, logBBB, B = 10, bagControl = bagControl(fit = ctreeBag$fit, predict = ctreeBag$pred, aggregate = ctreeBag$aggregate)) ## An example of pooling posterior probabilities to generate class predictions data(mdrr) ## remove some zero variance predictors and linear dependencies mdrrDescr <- mdrrDescr[, -nearZeroVar(mdrrDescr)] mdrrDescr <- mdrrDescr[, -findCorrelation(cor(mdrrDescr), .95)] basicLDA <- train(mdrrDescr, mdrrClass, "lda") bagLDA2 <- train(mdrrDescr, mdrrClass, "bag", B = 10, bagControl(fit = ldaBag$fit, predict = ldaBag$pred, aggregate = ldaBag$aggregate), tuneGrid = data.frame(.vars = c((1:10)*10 , ncol(mdrrDescr))))