--- a +++ b/R/RpartEVAL.R @@ -0,0 +1,48 @@ +#' @title Evaluating the performance of the RPART Decision Tree. +#' @description This function evaluates the performance of the generated trees +#' for error estimation by ten-fold cross validation assessment. +#' @export +#' @param data The resulted data from running the function J48DT. +#' @param num.folds A numeric value of the number of folds for the cross +#' validation assessment. Default is 10. +#' @param First A string vector showing the first target cluster. Default is +#' "CL1" +#' @param Second A string vector showing the second target cluster. Default is +#' "CL2" +#' @param quiet If `TRUE`, suppresses intermediary output +#' @importFrom stats predict +#' @return Performance statistics of the model +RpartEVAL <- function(data, num.folds = 10, First = "CL1", Second = "CL2", + quiet = FALSE) { + exp.imput.df <- as.data.frame(t(data)) + num.instances <- nrow(exp.imput.df) + indices <- 1:num.instances + classVector <- factor(colnames(data)) + cv.segments <- split( + sample(indices), rep(1:num.folds, length = num.instances) + ) + Rpart.performance <- cross.val( + exp.imput.df, classVector, cv.segments, Rpart.performance, "rpart", quiet + ) + if (!quiet) print(Rpart.performance) + Rpart.confusion.matrix <- matrix(Rpart.performance, nrow = 2) + rownames(Rpart.confusion.matrix) <- c( + paste0("Predicted", First), paste0("Predicted", Second) + ) + colnames(Rpart.confusion.matrix) <- c(First, Second) + if (!quiet) print(Rpart.confusion.matrix) + Rpart.sn <- round(SN(Rpart.confusion.matrix), digits = 2) + Rpart.sp <- round(SP(Rpart.confusion.matrix), digits = 2) + Rpart.acc <- round(ACC(Rpart.confusion.matrix), digits = 2) + Rpart.mcc <- round(MCC(Rpart.confusion.matrix), digits = 2) + + if (!quiet) { + message( + "Rpart SN: ", Rpart.sn, "\n", + "Rpart SP: ", Rpart.sp, "\n", + "Rpart ACC: ", Rpart.acc, "\n", + "Rpart MCC: ", Rpart.mcc, "\n" + ) + } + return(Rpart.performance) +}