0

我将一个数据框分为两个subsets,trainSettestSet。然后我使用树库中的树命令:

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

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

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

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

我不确定如何使 prune.tree 命令在新数据集上工作以选择最佳树。

4

1 回答 1

0

使用model.frame,这应该工作

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

但我认为最好使用cv.treewhich is 将对您的训练数据进行交叉验证并调用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,]))
于 2013-02-28T22:09:28.100 回答