在rpart r接收非常小的树

时间:2014-06-23 23:58:41

标签: r rpart

我有大约300,000条记录,我正在尝试使用二进制分类解释变量"请求"。

我使用了以下代码:

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)。

有谁知道如何让它变得更复杂? (在节点上包含其他自变量)谢谢!

1 个答案:

答案 0 :(得分:1)

如评论中所述,分割标准由cp参数控制,该参数可以直接传递给rpart

rpart( ..., cp = whatever)
  

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

cp的默认值为0.01。你可以继续减少cp,直到你得到一棵复杂性符合你喜欢的树(当然这没有说明树将如何推广到新数据;理想情况下你会通过交叉验证来调整cp值。

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