什么命令将dbscan中的簇数作为值返回?

时间:2013-11-13 19:02:46

标签: r command cluster-analysis dbscan

我需要一个类似于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.

2 个答案:

答案 0 :(得分:2)

如果查看对象ds的结构,您将看到每个观察点都有包含簇号的变量cluster。变量0中的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

答案 1 :(得分:0)

您可以使用命令

length(table(ds$cluster))-1

-1将删除0簇