我无法使用rpart获取更多信息.
我有一个数据框:
a = structure(list(V1 = c(2, 3, 4, 2, 3, 2, 3, 3, 5, 3), V2 = c(15,
26, 94, 15, 26, 33, 33, 33, 5, 15), V3 = structure(c(1L, 1L,
1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L), .Label = c("f", "t"), class = "factor")), .Names = c("V1",
"V2", "V3"), row.names = c(NA, -10L), class = "data.frame")
> a
V1 V2 V3
1 2 15 f
2 3 26 f
3 4 94 f
4 2 15 f
5 3 26 f
6 2 33 f
7 3 33 f
8 3 33 t
9 5 5 t
10 3 15 t
> rpart(V3 ~ ., data=a)
n= 10
node), split, n, loss, yval, (yprob)
* denotes terminal node
1) root 10 3 f (0.7000000 0.3000000) *
Run Code Online (Sandbox Code Playgroud)
为什么rpart没有提供更多信息,例如有三种情况(V1 == 2)都导致响应="f"(第1,4,6行)?
从本质上讲,我想找出:
我已经阅读了rpart插图,但我找不到答案.
你的问题的简短回答可能是这样的:
rpart(V3 ~ V1 + V2,data = a,control = rpart.control(minsplit = 5))
Run Code Online (Sandbox Code Playgroud)
因此,您可能希望花一些时间阅读文档,特别强调rpart.control.但更广泛地说,请注意,rpart仍未根据标准"测试"拆分V2 == 2,仅仅因为该变量是连续的.连续变量的所有分裂都是简单的二元不等式分裂.只根据对级别子集的选择来分割因子.
你链接到的小插图包含了一个广泛的讨论(引用进一步的讨论),关于该功能选择它所做的分裂的确切过程,所以我不确定如何回应你的说法,你读它但发现没有答案.
如果你开始?rpart并按照价值下的信息,你会去?rpart.object,这会告诉你:
为树中的每个节点提供一行的帧数据帧.框架的row.names包含遵循由节点深度索引的二进制排序的(唯一)节点编号.框架的列包括var,一个赋予每个节点拆分中使用的变量名称的因子(叶子节点用级别""表示),n,到达节点的观察数量,wt,案例权重之和对于到达节点的观测值,dev,节点的偏差,yval,节点处的响应的拟合值,以及分割,每个节点的左和右分裂标签的两列矩阵.帧中还包括复杂性,此分裂将崩溃的复杂性参数,ncompete,记录的竞争者分裂数,以及nsurrogate,记录的替代分裂数.
可能存在的额外响应信息在yval2中,其包含节点处的事件数(泊松树),或包含拟合类的矩阵,每个节点的类计数,类概率和"节点概率"(分类树).
其中,整数向量的长度与根节点中的观察数相同,包含与每个观察所属的叶节点对应的帧的行数.
调用 生成该对象的调用的图像,但所有命名的参数和包含在公式参数中的实际公式.要重新评估呼叫,请说更新(树).
术语 c类的对象("术语","公式")(参见terms.object)总结公式.由各种方法使用,但通常与用户没有直接关系.
分割 描述分裂的数字矩阵:仅在有任何分支时出现.行标签是拆分变量的名称,列是计数,通过拆分向左或向右发送的观察数(不丢失且具有正重量)(对于竞争对手拆分,这是本来应该的数字)如果使用此分割,则向左或向右发送,对于代理分割,它是缺少使用此代理确定的主分割变量的数字),ncat,变量的类别或级别数(+/- 1表示连续变量) ),改进,这是由这种分裂给出的偏差的改善,或者对于代理人来说,代理人与主要和指数,数字分裂点的一致性.最后一列adj给出了替代分裂的调整后的一致性.对于因子,索引列包含csplit矩阵的行号.对于连续变量,ncat的符号确定子集x <cutpoint或x> cutpoint是否发送到左侧.
csplit 一个整数矩阵.(仅当分裂变量中的至少一个是因子或有序因子时才存在.)每个这样的分割都有一行,并且列数是因子中最大的级别数.哪个行由拆分矩阵的索引列给出.如果该因子的级别向左移动,则列记录1;如果向右移动,则列为3;如果该级别不存在于树的该节点(或未针对该因子定义),则列为2.
method character string:用于生成树的方法."class","exp","poisson","anova"或"user"之一(如果提供了分割功能).
cptable 基于复杂性参数的最佳修剪信息矩阵.
变量.重要性 命名数字向量给出每个变量的重要性.(仅当存在任何拆分时才会出现.)当通过summary.rpart打印时,这些将被重新调整为添加到100.
numresp 整数个响应; 因子响应的级别数.
**parms,contro**la提供的参数记录,默认填写.
函数 所使用的摘要,打印和文字功能的方法.
如果它是一个有序因子,则为每个变量命令一个命名逻辑向量记录.
na.action (相关的)由model.frame返回的关于从na.action参数派生的NA的特殊处理的信息.