我有大约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)。
有谁知道如何让它变得更复杂? (在节点上包含其他自变量)谢谢!
答案 0 :(得分:1)
如评论中所述,分割标准由cp
参数控制,该参数可以直接传递给rpart
:
rpart( ..., cp = whatever)
cp:复杂性参数。任何不会减少的分裂 没有尝试通过'cp'因子整体缺乏适应性。 例如,'anova'分裂,这意味着 总体R平方必须在每一步增加'cp'。该 此参数的主要作用是节省计算时间 修剪明显不值得的分裂。 从本质上讲,用户通知程序任何拆分 不会通过“cp”提高适应度 交叉验证,因此该计划不需要追求 它
cp
的默认值为0.01。你可以继续减少cp,直到你得到一棵复杂性符合你喜欢的树(当然这没有说明树将如何推广到新数据;理想情况下你会通过交叉验证来调整cp
值。
您还可以试验minbucket
的值以及您将在?rpart.control
中看到的其他参数。