最小化平均距离

时间:2021-01-11 11:54:48

标签: r optimization

我正在研究一个可以给出向量 a 的函数,找到一组值 b,其中 a 中的值的平均距离> 到 b 中最接近的值是最小的。换句话说,我想找到分布中固定数量点的理想分布,因此平均距离最小。我希望这个解释对人们有意义。

下面的函数接受两个参数:向量 ap,它是 b 的长度。它在 p = 2 时按预期工作,但对于任何更大数量的 p 都会产生错误(请参阅下面的错误)。该错误对我来说毫无意义,因为这两个向量不可能有不同的长度。 (mc)lapply running Closest over the vector a 应该总是产生一个与 a 长度相同的向量,所以我不知道如何解决这个问题。

library(DescTools)
library(stats)
library(parallel)

party_opt <- function(a, p) {
dist_f <- function(a, b) {
  dist <- mean(abs(a - unlist(mclapply(a, function(i) Closest(x = b, a = i)), use.names=FALSE)))
  return(dist)
}
out <- optim(par = rep(min(a),p), fn = dist_f,  a = a)
return(out)
}

这是两个以上的值发生的错误。

警告信息:

<块引用>

1:在人中 - unlist(mclapply(a, function(i) Closest(x = b, a = i)), : 较长的物体长度不是较短物体长度的倍数

0 个答案:

没有答案