使用ctree{partykit}的R多路拆分树
我想使用partykit的使用ctree{partykit}的R多路拆分树,r,decision-tree,R,Decision Tree,我想使用partykit的ctree函数使用条件推理树分析数据。我特别选择这个函数,因为——如果我理解正确的话——它是唯一允许多路拆分的函数之一。我需要这个选项,因为我的所有变量都是多级(无序)分类变量 但是,尝试使用ctree\u control启用多路拆分会出现以下错误: aufprallentree <- ctree(case ~., data = aufprallen, control = ctree_control(minsplit = 10, minbucket = 5,
ctree
函数使用条件推理树分析数据。我特别选择这个函数,因为——如果我理解正确的话——它是唯一允许多路拆分的函数之一。我需要这个选项,因为我的所有变量都是多级(无序)分类变量
但是,尝试使用ctree\u control
启用多路拆分会出现以下错误:
aufprallentree <- ctree(case ~., data = aufprallen,
control = ctree_control(minsplit = 10, minbucket = 5, multiway = TRUE))
## Error in 1:levels(x) : NA/NaN argument
## In addition: Warning messages:
## 1: In 1:levels(x) :
## numerical expression has 4 elements: only the first used
## 2: In partysplit(as.integer(isel), index = 1:levels(x)) :
## NAs introduced by coercion
提前谢谢 几句话:
的错误是1:levels(x)
中的一个错误。代码应该是ctree
。我刚刚在R-Forge上修复了这个问题-因此,如果您现在想使用该选项,您可以从那里签出SVN并手动安装该包。(如果您需要更多详细信息,请与我联系。)Torsten可能还会在未来几周发布新的CRAN1:nlevels(x)
- 另一个可以通过多路拆分学习二叉分类树的函数是
包中的partykit
。代码将是glmtree
。它采用参数不稳定性检验代替关联条件推理来确定分裂变量,并采用形式似然法。但在许多情况下,结果与ctree相当相似glmtree(case~,data=aufprallen,family=binomial,catsplit=“multiway”,minsize=5)
- 在这两种算法中,多路分割都是非常基本的:如果选择分类变量进行分割,则根本不进行分割选择。相反,所有类别都有自己的子节点。有一些算法试图通过数据驱动的子节点数(介于2和类别数之间)来确定类别的最佳分组
- 即使有两个以上级别的分类预测变量,也不需要多路拆分。许多算法只使用二进制分割,因为任何多路分割都可以用一系列二进制分割来表示。然而,在许多数据集中,事实证明,在拆分因子中不分离所有类别,而只分离少数类别是有益的
str(aufprallen)
## 'data.frame': 299 obs. of 10 variables:
## $ prep : Factor w/ 6 levels "an","auf","hinter",..: 2 2 2 2 2 2 1 2 2 2 ...
## $ prep_main : Factor w/ 2 levels "auf","other": 1 1 1 1 1 1 2 1 1 1 ...
## $ case : Factor w/ 2 levels "acc","dat": 1 1 2 1 1 1 2 1 1 1 ...
## $ sense : Factor w/ 3 levels "crashdown","crashinto",..: 2 2 1 3 2 2 1 2 1 2 ...
## $ PO_type : Factor w/ 4 levels "object","region",..: 4 4 3 1 4 4 3 4 3 4 ...
## $ PO_type2 : Factor w/ 3 levels "object","region",..: 1 1 3 1 1 1 3 1 3 1 ...
## $ perfectivity : Factor w/ 2 levels "imperfective",..: 1 1 2 2 1 1 1 1 1 1 ...
## $ mit_Körperteil: Factor w/ 2 levels "n","y": 1 1 1 1 1 1 1 1 1 1 ...
## $ PP_place : Factor w/ 4 levels "back","front",..: 4 1 1 1 1 1 1 1 1 1 ...
## $ PP_place_main : Factor w/ 3 levels "marked","rel",..: 2 3 3 3 3 3 3 3 3 3 ...