rpart包和party包的简朴较量
决定树模子是一种简朴易用的非参数分类器。它不需要对数据有任何的先验假设,计较速度较快,功效容易表明,并且稳健性强,不怕噪声数据和缺失数据。决定树模子的根基计较步调如下:先从n个自变量中挑选一个,寻找较佳支解点,将数据分别为两组。针对分组后数据,将上述步调反复下去,直到满意某种条件。
在决定树建模中需要办理的重要问题有三个:
在R语言中关于决定树建模,更为常用的有两个包,一个是rpart包,另一个是party包。我们来看一下对付上述问题,这两个包别离是怎么处理惩罚的。
rpart包的处理惩罚方法:首先对所有自变量和所有支解点举办评估,较佳的选择是使支解后组内的数据更为“一致”(pure)。这里的“一致”是指组内数据的因变量取值变异较小。rpart包对这种“一致”性的默认怀抱是Gini值。确定遏制分另外参数有许多(拜见rpart.control),确定这些参数长短常重要而微妙的,因为分别越细,模子越巨大,越容易呈现太过拟合的环境,而分别过粗,又会呈现拟合不敷。处理惩罚这个问题凡是是利用“剪枝”(prune)要领。即先成立一个分别较细较为巨大的树模子,再按照交错检讨(Cross-Validation)的要领来预计差异“剪枝”条件下,各模子的误差,选择误差最小的树模子。
party包的处理惩罚方法:它的配景理论是“条件揣度决定树”(conditional inference trees):它按照统计检讨来确定自变量和支解点的选择。即先假设所有自变量与因变量均独立。再对它们举办卡方独立检讨,检讨P值小于阀值的自变量插手模子,相关性最强的自变量作为第一次支解的自变量。自变量选择好后,用置换检讨来选择支解点。用party包成立的决定树不需要剪枝,因为阀值就抉择了模子的庞洪水平。所以如何抉择阀值参数长短常重要的(拜见ctree_control)。较为风行的做法是取差异的参数值举办交错检讨,选择误差最小的模子参数。
下面我们用iris数据集,别离用两个包的默认参数来建模,调查其图形功效。rpart包的内置画图成果不强,因此利用partykit包来绘制rpart建模工具。
上面的图形是rpart包的功效,下图是party包的功效,两种要领的前两个分别变量都是一致的,只是在分别界值上略有差异,别的party包的功效还巨大一些。根基上两类要领的预测本领没有很大区别。
出了决定树模子之外,这两个包也别离提供了集成进修要领随机丛林,基于rpart包的随机丛林是randomForest包,而基于party包的随机丛林即cforest函数。