使用R语言rpart包绘制决策树时标签显示错误的问题
问题原因与解决方法
这个问题我之前也碰到过!核心原因是你的Entity变量被识别为因子(分类变量)类型,而rpart包的text()函数默认会对分类变量的分支使用字母缩写(a、b、c...)来替代实际的水平值——这么做是为了避免当分类变量水平较多时,标签挤在一起看不清楚。
解决步骤:
第一步:确认变量类型
先检查Entity的类型,在R里运行:class(Dataset$Entity)如果结果是
factor,那和我们的判断一致;如果是integer/numeric但你希望把它当分类变量处理,先转成因子:Dataset$Entity <- as.factor(Dataset$Entity)第二步:调整
text()函数参数
修改你的绘图代码,加上abbreviate=FALSE参数关闭缩写,同时可以调整字号避免拥挤:plot(tree) text(tree, abbreviate=FALSE, cex=0.8, use.n=TRUE)abbreviate=FALSE:强制显示变量的实际水平值,而非字母缩写cex=0.8:缩小标签字号,防止重叠use.n=TRUE:在节点里显示样本数量,辅助解读
进阶方案:用
rattle包美化绘图
如果觉得默认绘图不够直观,可以用rattle包的fancyRpartPlot()函数,它默认会显示清晰的实际标签,还自带美观的样式:# 安装并加载包(首次使用需要安装) install.packages("rattle") library(rattle) fancyRpartPlot(tree)
这样调整后,你就能看到Entity的实际标签(2、5、6这些值),而不是abcd啦!
内容的提问来源于stack exchange,提问作者Layale
相关产品推荐
相关产品推荐

