r语言party包和rpart包的区别

Python042

r语言party包和rpart包的区别,第1张

rpart包的处理方式:首先对所有自变量和所有分割点进行评估,最佳的选择是使分割后组内的数据更为“一致”(pure)。这里的“一致”是指组内数据的因变量取值变异较小。rpart包对这种“一致”性的默认度量是Gini值。确定停止划分的参数有很多(参见rpart.control),确定这些参数是非常重要而微妙的,因为划分越细,模型越复杂,越容易出现过度拟合的情况,而划分过粗,又会出现拟合不足。处理这个问题通常是使用“剪枝”(prune)方法。即先建立一个划分较细较为复杂的树模型,再根据交叉检验(Cross-Validation)的方法来估计不同“剪枝”条件下,各模型的误差,选择误差最小的树模型。

party包的处理方式:它的背景理论是“条件推断决策树”(conditional inference trees):它根据统计检验来确定自变量和分割点的选择。即先假设所有自变量与因变量均独立。再对它们进行卡方独立检验,检验P值小于阀值的自变量加入模型,相关性最强的自变量作为第一次分割的自变量。自变量选择好后,用置换检验来选择分割点。用party包建立的决策树不需要剪枝,因为阀值就决定了模型的复杂程度。所以如何决定阀值参数是非常重要的(参见ctree_control)。较为流行的做法是取不同的参数值进行交叉检验,选择误差最小的模型参数。

我只用过arules和Rweka,后来就不用R做数据挖掘了,直接用weka。

其他R包可以上cran上搜索。

题外话:ctree是决策数,算是分类算法,和关联规则不是一个概念吧。当然很久没碰,可能记错了。

rpart包,rpart包是官方推荐的一个包,它的功能就是实现递归分割和回归树。

party包,关于递归分割更为详细的包,它包含了Bagging方法,可以产生条件推断树(conditional inference tree)等;

randomForest包,实现了分类与回归树的随机森林(random forest)算法。