gpt4 book ai didi

r - Tree 包中的预测函数

转载 作者:行者123 更新时间:2023-12-02 05:05:33 24 4
gpt4 key购买 nike

我在 R 中有分类树,我尝试通过以下方式进行交叉验证:

cv.tree1<-cv.tree(tree1)

然后我试了一下

tree3 = prune.tree(tree1, best=15)

然后我尝试从当前树中预测我所有的标签:

predict(tree3, data.train[1,])

输出是:

            0         1          2          3           4           5           6          7          8
1 0.0006247397 0.8531862 0.03706789 0.02207414 0.003123698 0.008746356 0.009371095 0.00728863 0.05310287
9
1 0.005414411

据我所知,它给出了每个标签的概率,因为我这里有 10 个标签 0:9所以我试图获得最后一条语句的最大值以预测所有标签

predict.list <-matrix(0,nrow=nrow(data.train),ncol=10)
for (index in c(1:nrow(digits.train)))
{
predict.list[index]<-predict(tree3, data.train[index,])
}

然后我尝试获取 predict.list 中每一行的最大值,但实际上这不起作用所以我试着看看的结构str(预测(tree3, data.train[index,]))我发现了

   num [1, 1:10] 0.00656 0.00583 0.00947 0.07479 0.14813 ...
- attr(*, "dimnames")=List of 2
..$ : chr "8184"
..$ : chr [1:10] "0" "1" "2" "3" ...

所以问题是,我获得最大值是否正确?每一个这样我就得到了预测,以及如何获得相应标签的最大值

我可以得到最大值

max(predict(tree3, digits.train[1,]))

但是我获取不到相应的标签

最佳答案

predict.tree() 函数有一个名为 type 的参数。它的默认值为 "vector",在分类树的情况下,它将返回一个向量,其中包含每个观察行的类别概率。您可以将其更改为 "class",它只会返回概率最高的类。在你的情况下使用

predict.list <- predict(tree3, data.train, type="class")

将返回一个长度为 nrow(data.train) 的因子向量,每个值都是为相应行预测的因子水平。

关于r - Tree 包中的预测函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16330176/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com