有谁知道r包树包的 cv.tree
功能如何工作?默认设置为10倍,但结果显示8个树模型而不是10个:
此外,如果我设置5折,结果显示8个模型:
我使用的代码如下:
library (MASS)
library(tree)
set.seed (1)
train = sample (1: nrow(Boston ), nrow(Boston )/2)
tree.boston =tree(medv~.,Boston ,subset =train)
summary (tree.boston )
cv.boston =cv.tree(tree.boston,K=10)
cv.boston
谢谢
1 回答
输出中显示的八个内容不是交叉验证的折叠 .
cv.tree
的文档说明了输出:由于未将
FUN
参数指定为cv.tree
,因此您将获得默认prune.tree
.prune.tree
的输出是多少?文件说:请注意,您的树正好有8片叶子 .
prune.tree
向你展示八棵树的偏差,一个一个地剪掉树叶 .cv.tree
向您展示了这个的交叉验证版本 . 它不是计算完整训练数据的偏差,而是对八个连续修剪中的每一个使用交叉验证的值 .将仅使用
prune.tree
的输出中的偏差与交叉验证的偏差进行比较 .请注意,每个步骤的交叉验证值都相当高 . 只需对训练数据使用
prune.tree
测试,因此低估了偏差 . cv值更加真实 .