Моя модель KNN - проблема Vector to data.frame - PullRequest
0 голосов
/ 12 апреля 2020

Мне нужна твоя помощь на этот раз. Я работаю над своей моделью KNN (ищу их вероятности).

predictions<- knn(x_training, x_testing, y_training, k = 5, prob = TRUE)

Тем не менее, я хотел бы получить с ним фрейм данных. Когда я применил функцию data.frame, я получаю только 0/1 (независимо от того, является ли она истинной или ложной), но не вероятность.

1 Ответ

0 голосов
/ 12 апреля 2020

Немного сложно понять ваш вопрос, вы должны попытаться привести нам воспроизводимый пример с кодом. Нам, сообществу, гораздо легче эффективно ответить на ваши вопросы, если вы ответите.

Вот пример:

library(class)
train <- rbind(iris3[1:25,,1], iris3[1:25,,2], iris3[1:25,,3])
test <- rbind(iris3[26:50,,1], iris3[26:50,,2], iris3[26:50,,3])
cl <- factor(c(rep("s",25), rep("c",25), rep("v",25)))
predictions <- knn(train, test, cl, k = 3, prob=TRUE)

Я полагаю, что у вас возникли проблемы, потому что вы пытаетесь Приведите вывод функции KNN в информационный кадр. Однако выход KNN имеет вероятности в качестве атрибута данных.

Так что вам нужно получить доступ к вероятностям с помощью функции attr (). Для получения дополнительной информации введите:

?attr

в консоль R.

Для достижения желаемого результата вам необходимо сделать следующее:

data.frame(Value=predictions,Prob=attr(predictions,"prob"))
...