[英]not creating tree by rpart in R
我是R和rpart包的新手。 我想使用以下示例数据创建树。
我的数据集与此mydata =
"","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()
的默认设置时,根本不考虑拆分。 默认情况下, 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) *
但是,这是否特别有用是另一个问题……
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.