gettree.r
来自「是基于linux系统的C++程序」· R 代码 · 共 42 行
R
42 行
getTree <- function(rfobj, k=1, labelVar=FALSE) { if (is.null(rfobj$forest)) { stop("No forest component in ", deparse(substitute(rfobj))) } if (k > rfobj$ntree) { stop("There are fewer than ", k, "trees in the forest") } if (rfobj$type == "regression") { tree <- cbind(rfobj$forest$leftDaughter[,k], rfobj$forest$rightDaughter[,k], rfobj$forest$bestvar[,k], rfobj$forest$xbestsplit[,k], rfobj$forest$nodestatus[,k], rfobj$forest$nodepred[,k])[1:rfobj$forest$ndbigtree[k],] } else { tree <- cbind(rfobj$forest$treemap[,,k], rfobj$forest$rightDaughter[,k], rfobj$forest$bestvar[,k], rfobj$forest$xbestsplit[,k], rfobj$forest$nodestatus[,k], rfobj$forest$nodepred[,k])[1:rfobj$forest$ndbigtree[k],] } dimnames(tree) <- list(1:nrow(tree), c("left daughter", "right daughter", "split var", "split point", "status", "prediction")) if (labelVar) { tree <- as.data.frame(tree) v <- tree[[3]] v[v == 0] <- NA tree[[3]] <- factor(rownames(rfobj$importance)[v]) if (rfobj$type == "classification") { v <- tree[[6]] v[! v %in% 1:nlevels(rfobj$y)] <- NA tree[[6]] <- levels(rfobj$y)[v] } } tree}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?