% Generated by roxygen2: do not edit by hand % Please edit documentation in R/xgb.ggplot.R, R/xgb.plot.deepness.R \name{xgb.ggplot.deepness} \alias{xgb.ggplot.deepness} \alias{xgb.plot.deepness} \title{Plot model trees deepness} \usage{ xgb.ggplot.deepness(model = NULL, which = c("2x1", "max.depth", "med.depth", "med.weight")) xgb.plot.deepness(model = NULL, which = c("2x1", "max.depth", "med.depth", "med.weight"), plot = TRUE, ...) } \arguments{ \item{model}{either an \code{xgb.Booster} model generated by the \code{xgb.train} function or a data.table result of the \code{xgb.model.dt.tree} function.} \item{which}{which distribution to plot (see details).} \item{plot}{(base R barplot) whether a barplot should be produced. If FALSE, only a data.table is returned.} \item{...}{other parameters passed to \code{barplot} or \code{plot}.} } \value{ Other than producing plots (when \code{plot=TRUE}), the \code{xgb.plot.deepness} function silently returns a processed data.table where each row corresponds to a terminal leaf in a tree model, and contains information about leaf's depth, cover, and weight (which is used in calculating predictions). The \code{xgb.ggplot.deepness} silently returns either a list of two ggplot graphs when \code{which="2x1"} or a single ggplot graph for the other \code{which} options. } \description{ Visualizes distributions related to depth of tree leafs. \code{xgb.plot.deepness} uses base R graphics, while \code{xgb.ggplot.deepness} uses the ggplot backend. } \details{ When \code{which="2x1"}, two distributions with respect to the leaf depth are plotted on top of each other: \itemize{ \item the distribution of the number of leafs in a tree model at a certain depth; \item the distribution of average weighted number of observations ("cover") ending up in leafs at certain depth. } Those could be helpful in determining sensible ranges of the \code{max_depth} and \code{min_child_weight} parameters. When \code{which="max.depth"} or \code{which="med.depth"}, plots of either maximum or median depth per tree with respect to tree number are created. And \code{which="med.weight"} allows to see how a tree's median absolute leaf weight changes through the iterations. This function was inspired by the blog post \url{https://github.com/aysent/random-forest-leaf-visualization}. } \examples{ data(agaricus.train, package='xgboost') # Change max_depth to a higher number to get a more significant result bst <- xgboost(data = agaricus.train$data, label = agaricus.train$label, max_depth = 6, eta = 0.1, nthread = 2, nrounds = 50, objective = "binary:logistic", subsample = 0.5, min_child_weight = 2) xgb.plot.deepness(bst) xgb.ggplot.deepness(bst) xgb.plot.deepness(bst, which='max.depth', pch=16, col=rgb(0,0,1,0.3), cex=2) xgb.plot.deepness(bst, which='med.weight', pch=16, col=rgb(0,0,1,0.3), cex=2) } \seealso{ \code{\link{xgb.train}}, \code{\link{xgb.model.dt.tree}}. }