0

我需要一个类似于 的命令length()来查找在 dbscan 中创建的集群的数量。

假设我对这个数据集执行了 dbscan

set.seed(665544)
n <- 600
x <- cbind(runif(10, 0, 10)+rnorm(n, sd=0.2), runif(10, 0, 10)+rnorm(n,sd=0.2))
ds<- dbscan(x,.2,showplot=1)

我可以使用命令 ds 来查看集群的数量

ds

是否有我可以键入的命令并返回集群数量的值?即我输入一个命令,返回值 12。

4

2 回答 2

2

如果您查看对象的结构,ds您会看到cluster每个观察值都有包含簇号的变量。0in 变量cluster用于对噪声观测值进行编码(参见 帮助文件dbscan())。

 str(ds)
List of 4
 $ cluster: num [1:600] 1 2 3 4 5 10 6 7 8 9 ...
 $ eps    : num 0.2
 $ MinPts : num 5
 $ isseed : logi [1:600] TRUE TRUE TRUE TRUE TRUE FALSE ...
 - attr(*, "class")= chr "dbscan"

要查找集群的数量,您可以查看该变量的最大值。结果是 11。

 max(ds$cluster)
[1] 11
于 2013-11-13T19:11:30.957 回答
0

你可以使用命令

length(table(ds$cluster))-1

-1 将删除 0 簇

于 2013-11-13T19:13:35.673 回答