我正在使用类包的 knn 函数:
k <- knn(train = training, test = testset, cl = classes, k = 1, prob = TRUE)
对于测试集中的给定示例,有没有办法获得训练数据中k个最近邻居的索引?我在包的文档中找不到任何相关内容! knn函数仅返回测试示例的类和分类概率,但不返回每个测试示例的k个最近邻居的索引。
提前致谢!
答案 0 :(得分:0)
你需要一个不同的包来做到这一点。您需要R中的FNN包和函数get.knn。您可以阅读文档here
这是一个简单的例子:
library(FNN)
data <- cbind(1:100, 1:100)
a <- get.knn(data, k=3)
并键入此内容以获取每条记录的3个最近邻居的索引:
> a$nn.index
[,1] [,2] [,3]
[1,] 2 3 4
[2,] 1 3 4
[3,] 2 4 1
[4,] 3 5 2
[5,] 6 4 3
[6,] 5 7 4
[7,] 6 8 5
[8,] 9 7 10
[9,] 10 8 11
[10,] 9 11 12
[11,] 12 10 9