【问题标题】:rpart stops at root node and does not split further when there is an obvious information gainrpart 在根节点停止,当有明显的信息增益时不会进一步分裂
【发布时间】:2017-03-11 19:48:38
【问题描述】:

我正在尝试使用 rpart 来构建分类树模型。 测试数据框非常简单,仅包含 10 行中的两个布尔变量。 隐藏的逻辑也很简单:当 x 为 FALSE 时,y 必须为 FALSE。当 x 为 TRUE 时,y 有 60% 的机会为 TRUE。 所以我想 rpart 会在 x 上进行一次拆分以提高节点纯度。但它停留在根节点,根本不分裂。有人请教吗?

> df <- data.frame(x=rep(c(FALSE,TRUE), each=5), y=c(rep(FALSE,7), rep(TRUE,3)))
> df
       x     y
1  FALSE FALSE
2  FALSE FALSE
3  FALSE FALSE
4  FALSE FALSE
5  FALSE FALSE
6   TRUE FALSE
7   TRUE FALSE
8   TRUE  TRUE
9   TRUE  TRUE
10  TRUE  TRUE
> rpart(y~x, method='class', data=df)
n= 10 

node), split, n, loss, yval, (yprob)
      * denotes terminal node

1) root 10 3 FALSE (0.7000000 0.3000000) *

【问题讨论】:

  • N = 10?那就是修剪! Rpart 正在避免过度拟合。

标签: r rpart


【解决方案1】:

正如我在评论中所说,这是为了避免过度拟合。形式上,有参数minsplit,它预设为 20,但可以调整以给出你想要的结果:

> library(rpart)
> df <- data.frame(x=rep(c(FALSE,TRUE), each=5), y=c(rep(FALSE,7), rep(TRUE,3)))
> rpart(y ~ x, data=df, minsplit=2)
n= 10 

node), split, n, deviance, yval
      * denotes terminal node

1) root 10 2.1 0.3  
  2) x< 0.5 5 0.0 0.0 *
  3) x>=0.5 5 1.2 0.6 *

中找到更多关于语音过度拟合的论据(即cpmaxdepth
help(rpart.control)

编辑:使用 method="class" 输出更改为

> rpart(y ~ x, data=df, minsplit=2, method="class")
n= 10 

node), split, n, loss, yval, (yprob)
      * denotes terminal node

 1) root 10 3 FALSE (0.7000000 0.3000000)  
  2) x< 0.5 5 0 FALSE (1.0000000 0.0000000) *
  3) x>=0.5 5 2 TRUE (0.4000000 0.6000000) *

【讨论】:

  • 谢谢。测试数据量太小。当我将其增加到 N=100 时,rpart 的行为符合预期。 > df rpart(y~x, method='class', data=df) n= 100 node), split, n, loss, yval, (yprob) * 表示终端节点 1) root 100 30 FALSE (0.7000000 0.3000000) 2) x=0.5 50 20 真 (0.4000000 0.6000000) *
  • 但它仍然不适用于以下情况:> df rpart(y~x, method='class', data=df)
  • tree &lt;- rpart(y~x, data=df, cp=-1) 会以一种明智的方式进行,tree &lt;- rpart(y~x, method='class', data=df, cp=-1) 会以一种不太明智的方式。
猜你喜欢
  • 2014-10-12
  • 2018-02-02
  • 2018-04-12
  • 1970-01-01
  • 2015-02-03
  • 1970-01-01
  • 2010-12-27
  • 2011-07-24
  • 2015-11-03
相关资源
最近更新 更多