树包,使用newdata for prune.tree

时间:2013-02-28 19:40:37

标签: r tree

我将数据框划分为两个subsetstrainSettestSet。然后我在树库中使用tree命令:

tree1<-tree(y~., data=trainSet)

然后假设我想使用testSet修剪树1:

tree2<-prune.tree(tree1, newdata=testSet,best=7)

但是,我注意到tree2的计算基于原始trainSet,而不是新数据集(testSet)。

我不知道如何让prune.tree命令处理新数据集以选择最佳树。

1 个答案:

答案 0 :(得分:0)

使用model.frame,这应该可行

tree2<-prune.tree(tree1, newdata=model.frame(testSet),best=7)

但我认为最好使用cv.tree来对您的训练数据进行交叉验证,并在其上调用prune.tree

cv.tree(tree1, , prune.tree)

这里有一个例子,起诉来自MASS包的 fgl 数据。

 data(fgl, package="MASS")
 fgl.tr <- tree(type ~ ., fgl)
 prune.tree(fgl.tr,newdata=model.frame(fgl[1:200,]))