2017-10-10 56 views
1
下面

鉴于数据,我已经在那些点提取核点中的R

set.seed(294056) 
df = data.frame(x = runif(1000), y = runif(1000), z = runif(1000)) 
library(dbscan) 
db = dbscan(df, eps = 0.3, minPts =100) # formed 1 cluster 
print(db) 

DBSCAN clustering for 1000 objects. 
Parameters: eps = 0.3, minPts = 100 
The clustering contains 1 cluster(s) and 60 noise points. 

    0 1 
60 940 

Available fields: cluster, eps, minPts 

我想从该集群提取核心点施加DBSCAN。有没有办法提取这些点?

+0

您需要使用'set.seed(x)'和share,以便其他人可以重现您最后的相同数据集。 – TUSHAr

+0

@tushaR谢谢..完成编辑 –

回答

1

在你的dbscanborderPoints = F

这样,您只能通过丢弃边界点来检索核心点。

+0

** borderPoints:** '逻辑;应该分配边界点。常规DBSCAN的默认值为TRUE。如果FALSE,则边界点被认为是噪声“ 这将创建不带边界点的不同群集。我所需要的是查看所有点在集群中被分配为核心点(带有borderPoints = TRUE)。 –

+0

dbscan实现不保留此信息。但是,核心点的聚类是稳定的,所以如果你使用'borderPoints = TRUE'运行一次算法,并且一次使用'borderPoints = FALSE',那么你应该得到你正在寻找的答案。 –