R-decision树中的rpart包给出了每个叶节点中行数('n = ###')的错误标签

时间:2013-03-20 23:47:26

标签: r rpart

我正在使用R中的rpart包来创建一个名为'myData'的数据框中的决策树模型。它有85,590行。

决策树是使用这样的代码创建的(关键部分是'data = myData'):

  

decTree< - rpart(结果~var1 + var2 + ...,   data = myData,method =“anova”,control = rpart.control(minsplit = 30))

如果我绘制&标记该决策树的“叶子”(终端)节点,我在第一个节点的“左侧”得到66,667的初始分割。右边18,923(按预期添加到85,590,总行数。)

  

plot(decTree)#Plot the tree

     

text(decTree,use.n = TRUE)#Label the tree

创建此初始拆分的规则是var1< 1.5。

但是,如果我计算myData中var1为<的行数。 1.5,我得到79,518,而不是预期的85,590(如果我计算var1> = 1.5的行,我得到6,072的'补码',而不是树中显示的预期的18,923。)

  

长度((myData $ var1< 1.5))

     

[1] 79518

我意识到你不可能自己重现这种行为(以前的rpart模型在节点数方面对我来说正常工作,所以不知道为什么我这次遇到麻烦),但是我希望之前有人遇到过这个问题,否则我的代码会发现一些愚蠢的错误......

我尝试重新运行它,但仍然得到所有相同(不匹配)的叶子数量。

另外,我检查了myData $ frame,它肯定不仅仅是'n = ...'标签错了; $ frame值与图中显示的值匹配(并且与我自己完成的计数不匹配。)

  

decTree $帧

最后,'var1'值都不是NA。即:

  

长度(其(is.na(myData的$ VAR1)))

     

[1] 0

0 个答案:

没有答案