R中使用k-NN(类包)的最近邻居的索引

时间:2014-11-23 11:30:15

标签: r algorithm classification knn

我正在使用包的 knn 函数:

k <- knn(train = training, test = testset, cl = classes, k = 1, prob = TRUE)

对于测试集中的给定示例,有没有办法获得训练数据中k个最近邻居的索引?我在包的文档中找不到任何相关内容! knn函数仅返回测试示例的分类概率,但不返回每个测试示例的k个最近邻居的索引。

提前致谢!

1 个答案:

答案 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