使用R理解CART模型中的minbucket函数
Posted
技术标签:
【中文标题】使用R理解CART模型中的minbucket函数【英文标题】:Understanding of minbucket function in CART model using R 【发布时间】:2015-06-19 15:59:25 【问题描述】:假设训练数据是“水果”,我将使用它在 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 映射了 3 个 TRUE 和 2 个 FALSE。红色值出现五次。如果我给 minbucket = 1,2,3 那么它正在分裂。如果我给 minbucket = 4 或 5,那么尽管红色出现五次,但不会发生拆分。
【问题讨论】:
【参考方案1】:来自rpart
包的文档:
minbucket
任何终端节点中的最小观察次数。如果只指定了 minbucket 或 minsplit 之一,则代码将 minsplit tominbucket*3 或 minbucket 设置为 minsplit/3,视情况而定。
将minbucket
设置为 1 是没有意义的,因为每个叶节点(根据定义)至少有一个观察值。如果将其设置为更高的值,例如 3,则意味着每个叶节点在该存储桶中至少有 3 个观察值。
minbucket
的值越小,您的 CART 模型就越精确。如果将 minbucket
设置为太小的值,例如 1,您可能会面临模型过度拟合的风险。
【讨论】:
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)) 说这是我的数据框,我们发现结果是不是苹果??????我们这里有 5 个红苹果,1 个番茄,所以 eva 是红色的不一定是苹果。但是如果我在这里给 minbucket=5 或 4 则根本没有拆分。对于最小存储桶 1 到 3,有一个超过 3 的拆分,没有拆分。但我的叶节点中有超过 3 个观察值。请支持我的问题,谢谢.... @tim-biegeleisen ***.com/users/3710546/pascal。我已经编辑了原始问题。现在可以理解了吗???? 你能问一个新问题吗? ***.com/users/1863229/tim-biegeleisen。看到我有 2 个变量颜色和 isApple。颜色变量有绿色、黄色、粉色、橙色和红色。是 Apple 变量的值为 TRUE 或 FALSE。在最后一个示例中,RED 映射了 3 个 TRUE 和 2 个 FALSE。红色值出现五次。如果我给 minbucket = 1,2,3 那么它正在分裂。如果我给 minbucket =4 或 5 则不会发生拆分,尽管红色出现了五次。抱歉,我无法附上截图,我需要 10 个声望才能附上。 :( :(以上是关于使用R理解CART模型中的minbucket函数的主要内容,如果未能解决你的问题,请参考以下文章
R语言使用caret包构建bagged法CART回归模型(Bagged CART Tree )构建回归模型通过method参数指定算法名称通过trainControl函数控制训练过程