【问题标题】:not creating tree by rpart in R不在 R 中通过 rpart 创建树
【发布时间】:2015-07-01 13:58:37
【问题描述】:

我是 R 和 rpart 包的新手。我想使用以下示例数据创建一棵树。

我的数据集是这样的 我的数据 =

"","A","B","C","status"
"1",TRUE,TRUE,TRUE,"okay"
"2",TRUE,TRUE,FALSE,"okay"
"3",TRUE,FALSE,TRUE,"okay"
"4",TRUE,FALSE,FALSE,"notokay"
"5",FALSE,TRUE,TRUE,"notokay"
"6",FALSE,TRUE,FALSE,"notokay"
"7",FALSE,FALSE,TRUE,"okay"
"8",FALSE,FALSE,FALSE,"okay"
fit <- rpart(status ~ A + B + C, data = mydata, method = "class")

或 我尝试了不同的公式和不同的方法。但总是只产生根节点。不可能有情节。 它的显示

fit
n= 8 
node), split, n, loss, yval, (yprob)
* denotes terminal node
1) root 8 3 okay (0.3750000 0.6250000) *

如何创建树。?我需要显示百分比 每个节点上的“okay”和“notokay”。我需要指定 A、B 或 C 中的一个 用于拆分并显示统计信息

【问题讨论】:

  • 如果其他变量没有为模型添加预测值,函数 rpart 仅显示根树,换句话说:您无法使用变量区分不同类型的状态,它们非常没有预测能力的坏预测器

标签: r decision-tree rpart


【解决方案1】:

使用默认设置rpart() 根本不考虑拆分。 minsplit 参数默认为20(请参阅?rpart.control),它是“节点中必须存在的最小观察数才能尝试拆分”。因此,对于您的 8 次观察,甚至没有考虑拆分。

如果您决定考虑拆分,则可以减少minbucket 和/或minsplit 参数。例如

fit <- rpart(status ~ A + B + C, data = mydata,
  control = rpart.control(minsplit = 3))

产生以下树:

显示是由

plot(partykit::as.party(fit), tp_args = list(beside = TRUE))

rpart 的打印输出是:

n= 8 

node), split, n, loss, yval, (yprob)
      * denotes terminal node

1) root 8 3 okay (0.3750000 0.6250000)  
  2) A=FALSE 4 2 notokay (0.5000000 0.5000000)  
    4) B=TRUE 2 0 notokay (1.0000000 0.0000000) *
    5) B=FALSE 2 0 okay (0.0000000 1.0000000) *
  3) A=TRUE 4 1 okay (0.2500000 0.7500000) *

这是否特别有用是一个不同的问题......

【讨论】:

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