You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 11:21:30