首页 文章

如何使用rpart获得百分比

提问于
浏览
0

所以我正在开发一个带有决策树的项目,我需要知道如何获得每个节点的百分比 .

这是我的近似代码:

fit <- rpart(Y ~ a + b + c, method = "class", data = example, control = rpart.control(minsplit=5))

我的主要问题是如何从rpart输出获得示例中每个行的百分比估计 .

我看了下面的帖子How to get percentages from decision tree for each node给出的答案,根据我的理解(如果我错了请纠正我),33.3%的数据属于2级,36%属于4级,30.67%属于5级但我的问题不同的是,我需要知道的是第2课的入学机会百分比是多少,第4课的几率是多少,等等 .

任何帮助表示赞赏 . 谢谢!

1 回答

  • 0

    我们有一个环境,我们不能使用包含fancyRpartPlot的R rattle library - 使用prp绘制rpart树的包装器,所以我发现这样做的方法是使用function to access the rpart object frame,如下所示:

    rm(list = ls())
    library(rpart)
    node.fun <- function(x, labs, digits, varlen) {    
        avg  <- sprintf("%0.1f", x$frame$yval)
        pct   <- sprintf("%1.1f%%",100*x$frame$wt/x$frame$wt[1]) 
        rows <- format(x$frame$n, big.mark=",")
        paste0(avg, "\n", " n=", rows,"   ", pct)
    }
    fit <- rpart(skips ~ Opening + Solder + Mask + PadType + Panel, data = solder, method = "anova")
    rpart.plot::prp( fit, main="Formatted averages (no scientific notation) and percentages calculated", varlen=0, faclen=0,fallen.leaves=TRUE, shadow.col="gray", nn=TRUE, type = 4, extra = 101, box.palette="Greens", compress=TRUE, tweak=1,node.fun = node.fun)
    

    这给出了一个类似于的rpart plot / tree图像:

    library(rattle)
    fancyRpartPlot(fit)
    

相关问题