我的KNN模型-矢量到data.frame问题

问题描述 投票:0回答:1

这次我需要您的帮助。我正在研究我的KNN模型(寻找它们的概率)。

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

但是,我想获得一个数据框。当我应用data.frame函数时,我只会得到0/1(无论是对还是错),但概率却没有。

r knn
1个回答
0
投票
这里是一个例子:

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"))

© www.soinside.com 2019 - 2024. All rights reserved.