这可能是一个非常简单的问题,但我还没有找到解决方案。我想使用'sample'选择的随机点创建一个散点图。我还想将这些点分组为一定大小的随机分布点簇(比如10)。我试图使用标准偏差这样做,但我没有找到正确的方法。
到目前为止,我有以下代码:
max<-1000
MA1<- matrix(0, ncol = 500, nrow = 500)
x<-sample(1:max,50,replace = TRUE) + rnorm(length(20),sd=0.5)
y<- sample(1:max,50,replace = TRUE) + rnorm(length(20),sd=0.5)
plot(x,y, col = 2)`
我该如何解决这个问题?
答案 0 :(得分:1)
您正在寻找等大小的群集。有些算法试图回答这个问题,但问题是强制相同的大小可能会导致“没有空间连贯性”的解决方案。
考虑以下情况,n = 4:X = { - 1,0.99,1,1.01}。如果你想要2个集群,你可以获得不同的大小或“空间紧密”。
如果您可以使用可变大小的群集,这将有效:
set.seed=2
max<-1000
x<-sample(1:max,50,replace = TRUE) + rnorm(length(20),sd=0.5)
y<- sample(1:max,50,replace = TRUE) + rnorm(length(20),sd=0.5)
mat <-cbind(x,y)
fit <-kmeans(mat,5) #five clusters, ~= 10 per cluster if n=50
plot(mat, col=fit$cluster, pch=16)