У меня есть дерево классификации в R, я пытался перекрестную проверку по:предсказать функцию в пакете Tree
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,])
}
и я попытался получить максимальную сумму каждой строки в прогнозе.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
Вам не нужно зацикливать, чтобы получить все предсказания для набора данных. Если вы не укажете строку, она вернет вектор, содержащий все прогнозы для набора данных. – Marco