使用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","re​​d","re​​d","yellow","re​​d","yellow","orange","green", "pink","re​​d","re​​d"), 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函数控制训练过程

使用 CHAID 包生成树时,Minbucket 不起作用

《机器学习技法》---CART算法

R中常用数据挖掘算法包

ML(4.1): CART在R中应用

机器学习中的贝叶斯方法---先验概率似然函数后验概率的理解及如何使用贝叶斯进行模型预测