2
我有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,]))
得到最大,但我不能得到相應的標籤
感謝它的工作原理,但我試過循環來獲得所有的預測並將它保存在一個文件中,但它給了我比預期更多的數據,你有任何想法是否增加了更多的數據? – Yasmin 2013-05-02 05:10:25
您無需循環即可獲取數據集的所有預測。如果不指定行,它將返回一個包含數據集所有預測的向量。 – Marco 2013-05-02 05:59:52