能否在rpart.plot中展示gini-impurity(或信息增益)?
在rpart.plot的决策树节点显示Gini不纯度的实现方法
完全可以实现类似Python中决策树节点显示Gini不纯度的效果,rpart.plot包提供了两种便捷方式:
方法一:使用内置参数快速实现
rpart.plot的extra参数支持直接添加Gini不纯度信息,其中extra=104会在节点文本下方显示该节点的Gini值:
# 加载所需包 library(rpart) library(rpart.plot) # 构建分类决策树模型 fit <- rpart(Species ~ ., data = iris, method = "class") # 绘制带Gini不纯度的决策树 rpart.plot(fit, extra = 104, # 显示Gini不纯度 type = 5, # 显示类别占比与节点基本信息 fallen.leaves = TRUE, # 将叶节点放在同一水平线上 cex = 0.8) # 调整文本大小
方法二:自定义节点文本(更灵活)
如果需要对节点显示内容进行更个性化的调整,可以通过fn参数传入自定义函数,手动拼接Gini值与其他节点信息:
# 自定义节点文本生成函数 custom_node_text <- function(x, labs, digits, varlen, faclen) { # 从rpart模型对象中提取当前节点的Gini不纯度 node_gini <- x$frame$gini[x$which] # 拼接原节点文本与Gini信息(保留两位小数) updated_labs <- paste0(labs, "\nGini: ", round(node_gini, 2)) return(updated_labs) } # 使用自定义函数绘制决策树 rpart.plot(fit, fn = custom_node_text, type = 5, fallen.leaves = TRUE, branch.lty = 3, # 设置分支线型为虚线 cex = 0.8)
两种方法都能让每个决策树节点清晰展示Gini不纯度,还原你想要的Python风格可视化效果。
内容的提问来源于stack exchange,提问作者chaed
相关产品推荐
相关产品推荐

