【问题标题】:Receiving very small tree in rpart r在 rpart r 中接收非常小的树
【发布时间】:2014-08-14 02:40:53
【问题描述】:

我有大约 300,000 条记录,我正在尝试拟合二进制分类解释变量“Requested”。

我使用了以下代码:

require(rpart)
tree <-
  rpart(data=import, method="class",
    formula=Requested ~ 
     p0 + p_r + adow + tk + loy_pres + Sum_Offer_Price
     + Min_Offer_Price + Avg_Offer_Price + Avg_tk_m_p0
     + Min_tk_m_p0 + Avg_p_dis + Min_p_dis)

然而,这棵树很简单,只有一个分裂(就像一个倒置的 V)。

有谁知道如何使它更复杂? (包括节点上的其他自变量)谢谢!

【问题讨论】:

  • 阅读control 参数的文档?rpart.control

标签: r rpart


【解决方案1】:

正如评论中所说,拆分标准由cp参数控制,可以直接传递给rpart

rpart( ..., cp = whatever)

cp:复杂度参数。任何不减少 没有尝试因“cp”因素而整体缺乏拟合。 例如,对于“anova”分裂,这意味着 总体 R 平方必须在每一步增加“cp”。这 该参数的主要作用是节省计算时间 修剪显然不值得的分裂。 本质上,用户通知程序任何分裂 不会通过“cp”提高拟合度可能会被修剪掉 交叉验证,因此程序不需要追求 它。

cp 的默认值为 0.01。您可以不断降低 cp,直到您得到一棵其复杂性符合您的喜好的树(当然,这并没有说明该树对新数据的泛化能力如何;理想情况下,您可以通过交叉验证调整 cp 值)。

您还可以试验minbucket 的值以及您将在?rpart.control 中看到的其他参数。

【讨论】:

    猜你喜欢
    • 2015-07-01
    • 2013-02-09
    • 2015-09-18
    • 2015-03-07
    • 2016-04-09
    • 2015-01-08
    • 2020-10-05
    • 2021-05-30
    • 2015-02-17
    相关资源
    最近更新 更多