谁能解释条件推理树(ctree
来自party
R中的程序包)与更传统的决策树算法(诸如rpart
R中)的主要区别?
- 是什么使CI树与众不同?
- 长处和短处?
更新:我看了Chi在评论中提到的Horthorn等人的论文。我无法完全遵循它-谁能解释一下如何使用排列选择变量(例如什么是影响函数)?
谢谢!
谁能解释条件推理树(ctree
来自party
R中的程序包)与更传统的决策树算法(诸如rpart
R中)的主要区别?
更新:我看了Chi在评论中提到的Horthorn等人的论文。我无法完全遵循它-谁能解释一下如何使用排列选择变量(例如什么是影响函数)?
谢谢!
Answers:
物有所值:
二者rpart
并ctree
递归地执行单变量分割基于值的一组协变量的因变量的。rpart
相关算法通常采用信息量度(例如基尼系数)来选择当前协变量。
ctree
,根据其作者(请参阅chl的评论),避免了以下rpart
(和相关方法)的变量选择偏差:他们倾向于选择具有许多可能的分割或许多缺失值的变量。与其他方法不同,ctree
使用显着性检验程序来选择变量,而不是选择最大化信息量度(例如基尼系数)的变量。
显着性检验,或更好:显着性检验是在算法的每个开始时计算的(选择协变量-选择拆分-递归)是置换检验,也就是说,“零假设下检验统计量的分布是通过计算在观察到的数据点上的标签重新排列下,测试统计信息的所有可能值。” (摘自Wikipedia文章)。
现在是检验统计量:它是根据因变量和协变量的变换(包括同一性,即无变换)计算出来的。您可以为两个变量选择多种转换中的任何一种。对于DV(因变量),该转换称为您要询问的影响函数。
示例(摘自本文):
排列测试的一个小例子R
:
require(gtools)
dv <- c(1,3,4,5,5); covariate <- c(2,2,5,4,5)
# all possible permutations of dv, length(120):
perms <- permutations(5,5,dv,set=FALSE)
# now calculate correlations for all perms with covariate:
cors <- apply(perms, 1, function(perms_row) cor(perms_row,covariate))
cors <- cors[order(cors)]
# now p-value: compare cor(dv,covariate) with the
# sorted vector of all permutation correlations
length(cors[cors>=cor(dv,covariate)])/length(cors)
# result: [1] 0.1, i.e. a p-value of .1
# note that this is a one-sided test
现在假设您有一组协变量,不仅是上面的一个。然后计算p -值对每个像在上述方案中的协变量,并选择具有最小p -值。您想要直接计算p值而不是相关性,因为您可能拥有不同种类的协变量(例如,数值和分类)。
选择协变量后,现在探索所有可能的分割(或者通常以某种方式限制所有可能的分割,例如,在分割之前需要最少数量的DV元素),再次评估基于置换的测试。
ctree
附带了一些两个DV和协变量可能的变换(见的帮助Transformations
中party
包)。
因此,通常的主要区别似乎是ctree
使用基于统计理论的协变量选择方案(即通过基于排列的显着性检验进行选择),从而避免了的潜在偏差rpart
,否则它们看起来很相似。例如,条件推理树可以用作随机森林的基础学习者。
据我所知。有关更多信息,您确实需要阅读论文。请注意,我强烈建议您真正了解要应用任何类型的统计分析时的操作。