prune.ODT {ODRF} | R Documentation |
pruning of class ODT
Description
Prune ODT
from bottom to top with validation data based on prediction error.
Usage
## S3 method for class 'ODT'
prune(obj, X, y, MaxDepth = 1, ...)
Arguments
obj |
an object of class |
X |
An n by d numeric matrix (preferable) or data frame is used to prune the object of class |
y |
A response vector of length n. |
MaxDepth |
The maximum depth of the tree after pruning. (Default 1) |
... |
Optional parameters to be passed to the low level function. |
Details
The leftmost value of the horizontal axis indicates the tree without pruning, while the rightmost value indicates the data without splitting and using the average value as the predicted value.
Value
An object of class ODT
and prune.ODT
.
ODT
The same result asODT
.pruneError
Error of validation data after each pruning, misclassification rate (MR) for classification or mean square error (MSE) for regression. The maximum value indicates the tree without pruning, and the minimum value (0) indicates indicates the data without splitting and using the average value as the predicted value.
See Also
ODT
plot.prune.ODT
prune.ODRF
online.ODT
Examples
# Classification with Oblique Decision Tree
data(seeds)
set.seed(221212)
train <- sample(1:209, 100)
train_data <- data.frame(seeds[train, ])
test_data <- data.frame(seeds[-train, ])
index <- seq(floor(nrow(train_data) / 2))
tree <- ODT(varieties_of_wheat ~ ., train_data[index, ], split = "entropy")
prune_tree <- prune(tree, train_data[-index, -8], train_data[-index, 8])
pred <- predict(prune_tree, test_data[, -8])
# classification error
(mean(pred != test_data[, 8]))
# Regression with Oblique Decision Tree
data(body_fat)
set.seed(221212)
train <- sample(1:252, 100)
train_data <- data.frame(body_fat[train, ])
test_data <- data.frame(body_fat[-train, ])
index <- seq(floor(nrow(train_data) / 2))
tree <- ODT(Density ~ ., train_data[index, ], split = "mse")
prune_tree <- prune(tree, train_data[-index, -1], train_data[-index, 1])
pred <- predict(prune_tree, test_data[, -1])
# estimation error
mean((pred - test_data[, 1])^2)