使用R了解CART模型中的minbucket功能

时间:2015-04-14 06:33:01

标签: r decision-tree rpart

假设训练数据是"水果",我将用它来预测使用R中的CART模型

> fruit=data.frame(
                   color=c("red",   "red",  "red",  "yellow", "red","yellow",
                           "orange","green","pink", "red",‌    ​"red"),
                   isApple=c(TRUE, TRUE, TRUE, FALSE, TRUE, FALSE,
                             FALSE,FALSE,FALSE,FALSE,TRUE))

> mod = rpart(isApple ~ color, data=fruit, method="class", minbucket=1)

> prp(mod)

如果我们打算使用minbucket = 2,3,4,5,那么有人可以解释minbucket在绘制CART树时的角色究竟是什么吗?

看到我有2个变量颜色& isApple。颜色变量有绿色,黄色,粉红色,橙色和红色。 Apple变量的值为TRUE或FALSE。在最后一个例子中,RED有三个TRUE和2个FALSE映射。红色值出现五次。如果我给minbucket = 1,2,3那么它就是分裂。如果我给minbucket = 4或5,那么虽然红色出现五次但没有发生分裂。

1 个答案:

答案 0 :(得分:5)

来自rpart包的文档:

  

<强> minbucket

     

任何终端节点中的最小观测数。如果只指定了一个minbucket或minsplit,则代码会根据需要将minsplit tominbucket * 3或minbucket设置为minsplit / 3。

minbucket设置为1是没有意义的,因为每个叶节点(根据定义)将至少对其进行一次观察。如果将其设置为更高的值(例如3),则意味着每个叶节点在该存储桶中至少有3个观察值。

minbucket的值越小,您的CART模型就越精确。通过将minbucket设置为太小的值(例如1),您可能会冒着过度拟合模型的风险。