R KNN查找前N个邻居

R KNN查找前N个邻居,r,knn,R,Knn,注意:最初是以交叉验证的方式发布的,但建议说这更适合这里的主题 我在FNN包中使用knn方法进行分类,但我希望看到N个最近的邻居,而不是最上面的邻居。我尝试过使用不同的软件包(例如FastKNN和knncat),但我找不到一个可以为您实现这一点的fast函数 这是一个类似的问题(减去距离矩阵的部分): 这就是我尝试的:直线包含一行距离矩阵,直线N包含每个预测的前N个邻居 line_n = c() tmp_min <- order(line)[1:ncol(distance)] t

注意:最初是以交叉验证的方式发布的,但建议说这更适合这里的主题

我在FNN包中使用knn方法进行分类,但我希望看到N个最近的邻居,而不是最上面的邻居。我尝试过使用不同的软件包(例如FastKNN和knncat),但我找不到一个可以为您实现这一点的fast函数

这是一个类似的问题(减去距离矩阵的部分):

这就是我尝试的:直线包含一行距离矩阵,直线N包含每个预测的前N个邻居

line_n = c()

  tmp_min <- order(line)[1:ncol(distance)]
  tmp_id <- c()

  for (element in tmp_min)
    tmp_id <- c(tmp_id, colnames(distance)[element])

  for (element in tmp_id){

      if (!(element %in% line_n))
        line_n<- c(line_n, element)
      if (length(line_n) == N)
        break
  }

  line_n
line\u n=c()

tmp_min以下是您要查找的代码:

line_ret = c()
while(length(line_ret) < M)
{
  tmp = which.min(line)
  if (!(col_name[tmp] %in% line_ret))
  line_ret = c(line_ret, col_name[tmp])
  line <- line[-c(tmp)]
  col_name <- col_name[-c(tmp)]
}
line_ret
line_ret=c()
while(长度(直线长度)行,谢谢,我还没有看到那一行。虽然(我是R新手,所以我可能弄错了)我想这就是我正在做的。这一行向量我添加到第一个声明的最终结果矩阵中。为了得到行,我循环通过距离矩阵(我从未修改过),一次处理一行。