rmbst | R Documentation |
MM (majorization/minimization) based gradient boosting for optimizing nonconvex robust loss functions with componentwise linear, smoothing splines, tree models as base learners.
rmbst(x, y, cost = 0.5, rfamily = c("thinge", "closs"), ctrl=bst_control(), control.tree=list(maxdepth = 1),learner=c("ls","sm","tree"),del=1e-10)
x |
a data frame containing the variables in the model. |
y |
vector of responses. |
cost |
price to pay for false positive, 0 < |
rfamily |
|
ctrl |
an object of class |
control.tree |
control parameters of rpart. |
learner |
a character specifying the component-wise base learner to be used:
|
del |
convergency criteria |
An MM algorithm operates by creating a convex surrogate function that majorizes the nonconvex objective function. When the surrogate function is minimized with gradient boosting algorithm, the desired objective function is decreased. The MM algorithm contains difference of convex (DC) for rfamily="thinge"
, and quadratic majorization boosting algorithm (QMBA) for rfamily="closs"
.
An object of class bst
with print
, coef
,
plot
and predict
methods are available for linear models.
For nonlinear models, methods print
and predict
are available.
x, y, cost, rfamily, learner, control.tree, maxdepth |
These are input variables and parameters |
ctrl |
the input |
yhat |
predicted function estimates |
ens |
a list of length |
ml.fit |
the last element of |
ensemble |
a vector of length |
xselect |
selected variables in |
coef |
estimated coefficients in |
Zhu Wang
Zhu Wang (2018), Quadratic Majorization for Nonconvex Loss with Applications to the Boosting Algorithm, Journal of Computational and Graphical Statistics, 27(3), 491-502, doi: 10.1080/10618600.2018.1424635
Zhu Wang (2018), Robust boosting with truncated loss functions, Electronic Journal of Statistics, 12(1), 599-650, doi: 10.1214/18-EJS1404
cv.rmbst
for cross-validated stopping iteration. Furthermore see
bst_control
x <- matrix(rnorm(100*5),ncol=5) c <- quantile(x[,1], prob=c(0.33, 0.67)) y <- rep(1, 100) y[x[,1] > c[1] & x[,1] < c[2] ] <- 2 y[x[,1] > c[2]] <- 3 x <- as.data.frame(x) x <- as.data.frame(x) dat.m <- mbst(x, y, ctrl = bst_control(mstop=50), family = "hinge", learner = "ls") predict(dat.m) dat.m1 <- mbst(x, y, ctrl = bst_control(twinboost=TRUE, f.init=predict(dat.m), xselect.init = dat.m$xselect, mstop=50)) dat.m2 <- rmbst(x, y, ctrl = bst_control(mstop=50, s=1, trace=TRUE), rfamily = "thinge", learner = "ls") predict(dat.m2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.