R软件中K近邻算法所用函数逐行解释

本文详细解析了R软件中实现K近邻算法的函数,深入理解其内部工作原理,特别是当默认参数为NULL时如何在数据集中查找最近邻。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

备注:
1.scale = T :如果数据在找到最近邻居之前进行缩放(默认为t),则进行布尔设置。
2.distData可选地,您可以在这里指定一个包含应该用来查找邻居的数据集的数据框。 
在测试集中填写NA值时,这是有用的,您应该只使用训练集中的信息。 

这默认为NULL,这意味着将在数据中搜索邻居


##########算法理解##########
function (data, k = 10, scale = T, meth = "weighAvg", distData = NULL) 
{
  n <- nrow(data)  #计算数据data的行数n
  if (!is.null(distData)) { #如果distdata不是默认值NULL(注意!),那么变量distInit等于行数n+1  
    distInit <- n + 1       
    data <- rbind(data, distData) #rbind是将数据集根据行进行合并,就是自动往下面顺延组合
  }
  else distInit <- 1 #否则变量distInit等于1
  N <- nrow(data) #记N为新data的行数
  ncol <- ncol(data) #记ncol为新data的列数
  nomAttrs <- rep(F, ncol) #nomattrs 就是生成一个向量,元素是FALSE,个数是ncol个(data列数个)
  #seq(ncol)就是生成了1,2,3...ncol,一组连续的向量
  for (i in seq(ncol)) nomAttrs[i] <- is.factor(data[, i])#判断data中每列变量类型是否为factor的变量列,
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值