这次我需要您的帮助。我正在研究我的KNN模型(寻找它们的概率)。
predictions<- knn(x_training, x_testing, y_training, k = 5, prob = TRUE)
但是,我想获得一个数据框。当我应用data.frame函数时,我只会得到0/1(无论是对还是错),但概率却没有。
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"))