假设训练数据是"水果",我将用它来预测使用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,那么虽然红色出现五次但没有发生分裂。
答案 0 :(得分:5)
来自rpart
包的文档:
<强> minbucket 强>
任何终端节点中的最小观测数。如果只指定了一个minbucket或minsplit,则代码会根据需要将minsplit tominbucket * 3或minbucket设置为minsplit / 3。
将minbucket
设置为1是没有意义的,因为每个叶节点(根据定义)将至少对其进行一次观察。如果将其设置为更高的值(例如3),则意味着每个叶节点在该存储桶中至少有3个观察值。
minbucket
的值越小,您的CART模型就越精确。通过将minbucket
设置为太小的值(例如1),您可能会冒着过度拟合模型的风险。