prune.tree(tree, k = NULL, best = NULL, newdata, nwts,
method = c("deviance", "misclass"), loss, eps = 1e-3)
prune.misclass(tree, k = NULL, best = NULL, newdata,
nwts, loss, eps = 1e-3)tree. This is assumed to be the result
of some function that produces an object with the same named
components as that returned by the tree() function.tree
(k a scalar) or the (optional) sequence of subtrees minimizing the
cost-complexity measure (k a vector). If missing, k is
knewdata cases.deviance, is accepted. For classification trees, the
default is deviance andnewdata.k is supplied and is a scalar, a tree object is
returned that minimizes the cost-complexity measure for that k.
If best is supplied, a tree object of size best
is returned. Otherwise, an object of class tree.sequence
is returned. The object contains the following components:prune.misclass is an abbreviation for
prune.tree(method = "misclass") for use with cv.tree.
If k is supplied, the optimal subtree for that value is returned. The response as well as the predictors referred to in the right side
of the formula in tree must be present by name in
newdata. These data are dropped down each tree in the
cost-complexity sequence and deviances or losses calculated by
comparing the supplied response to the prediction. The function
cv.tree() routinely uses the newdata argument
in cross-validating the pruning procedure. A plot method
exists for objects of this class. It displays the value of the
deviance, the number of misclassifications or the total loss for
each subtree in the cost-complexity sequence. An additional axis
displays the values of the cost-complexity parameter at each subtree.
library(MASS)
data(fgl)
fgl.tr <- tree(type ~ ., fgl)
plot(print(fgl.tr))
fgl.cv <- cv.tree(fgl.tr,, prune.tree)
for(i in 2:5) fgl.cv$dev <- fgl.cv$dev +
cv.tree(fgl.tr,, prune.tree)$dev
fgl.cv$dev <- fgl.cv$dev/5
plot(fgl.cv)Run the code above in your browser using DataLab