决策树的可读性

3
我需要处理决策树问题,但不是很清楚。我的数据结构如下:
> str(mi)
'data.frame':   4393 obs. of  18 variables:
 $ OS_Gatunek       : Factor w/ 5 levels "Taraxacum ancistrolobum",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ PH_CreateDate    : Factor w/ 15 levels "2016-04-06","2016-04-19",..: 2 2 2 2 2 2 2 2 2 2 ...
 $ L_Dl             : num  7.91 8.96 10.18 10.09 9.4 ...
 $ L_SzerMaksOs     : num  1.93 3.98 3.12 4.04 2.75 2.69 3.69 3.23 2.3 2.49 ...
 $ L_DlMax          : num  3.51 4.08 5.58 5.04 3.99 3.6 5.65 4.62 3.33 4.18 ...
 $ KS_DlSk_Sr       : num  1.78 3.28 2.88 4.19 1.88 2.47 3.11 4.04 1.61 2.09 ...
 $ KS_Dl_Sr         : num  1.68 2.83 2.62 3.84 1.68 2.12 2.87 3.8 1.44 1.86 ...
 $ KS_Sz            : num  1.35 3.41 2.38 3.31 1.66 2.35 2.45 2.96 1.57 1.9 ...
 $ KB_DlSkos_Sr     : num  1.07 1.94 1.84 1.69 1.25 1.49 1.96 1.77 1.43 1.55 ...
 $ KB_Dl_Sr         : num  0.62 1.49 1.12 1.34 0.86 0.77 1.22 1.07 0.82 1.05 ...
 $ KB_Szer_Sr       : num  0.85 1.23 1.46 0.94 0.89 1.32 1.53 1.41 1.17 1.14 ...
 $ KB_SzerPierwKlapy: num  1.75 3.99 2.9 4.1 2.34 2.75 3.11 3.39 1.96 2.46 ...
 $ I_Dl_Sr          : num  0.25 0.86 0.48 0.61 0.44 0.41 0.7 0.86 0.14 0.59 ...
 $ I_SzOs           : num  0.37 0.83 0.47 0.87 0.39 0.73 0.53 0.96 0.4 0.33 ...
 $ I_DlSz_Sr        : num  2.3 4.08 3.35 5.23 2.34 3.39 3.22 4.43 1.96 2.55 ...
 $ O_Dl_Sr          : num  0.67 0.75 2.02 0.85 0.74 1.4 1.07 0.26 0.6 0.96 ...
 $ O_SzerOs         : num  1.35 1.59 1.31 0.91 1.08 0.94 1.18 0.84 1.71 0.93 ...
 $ O_SzerOskrz_Sr   : num  0.55 0.65 0.48 0.34 0.39 0.31 0.49 0.29 0.74 0.27 ...

代码如下所示:
model<-rpart(mi[,1]~., data=mi[,-c(1,2)])
plot(model)
text(model, cex=0.5)

像这样的树:

使用plot()绘制的决策树

如果我使用“rattle”包中的fancyRpartPlot()命令:

fancyRpartPlot(model, sub=NULL)

树是这样的:

使用fancyRpartPlot()生成的决策树

如果我使用 "rpart.plot" 包中的 rpart.plot():
rpart.plot(model)

树的形状如下:

由rpart.plot()制作的决策树

它们完全无法辨认。
尽管互联网上有各种文献可用,但我发现没有任何东西可以提高我的树的可读性。
我应该改变什么?我将感激任何建议。

我所能做的唯一一件事就是插入快捷方式而不是完整的物种名称,缩小字体并略微更改边距:plot(model, uniform=TRUE, margin=0.2) text(model, cex=.7) 它看起来并不是很美观,但比之前好多了。 - Olga Świder
1个回答

1
当调用rpart.plot时,通过使用fallen.leaves=FALSE和/或tweak=1.1(比如)为绘制的树创建额外的空间以容纳更大的文本。同时,通过使用varlen=4faclen=4(比如)来缩短变量和因子名称的长度。
请参阅rpart.plot vignette中FAQ章节中的建议。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接