2017-10-10 4 views
1

nachstehenden Angaben, habe ich DBSCAN auf diesen Punkten aufgetragenExtract Kernpunkte von DBSCAN in 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 

I Kernpunkte aus diesem Cluster extrahieren will. Gibt es eine Möglichkeit, diese Punkte zu extrahieren?

+0

Sie müssen 'set.seed (x)' verwenden und freigeben, damit andere den gleichen Datensatz wie an Ihrem Ende reproduzieren können. – TUSHAr

+0

@tushaR Danke .. getan die Bearbeitung –

Antwort

1

In Ihrem dbscan Set borderPoints = F.

Auf diese Weise erhalten Sie nur Kernpunkte durch Verwerfen von Grenzpunkten.

+0

** borderPoints: ** 'logisch; sollten Grenzpunkte zugewiesen werden. Der Standardwert ist TRUE für reguläres DBSCAN. Wenn FALSE, dann werden Grenzpunkte als Rauschen betrachtet. Dies erzeugt verschiedene Cluster ohne Grenzpunkte. Alles was ich will, ist zu sehen, was alle Punkte als Kernpunkte im Cluster zugewiesen sind (mit borderPoints = TRUE). –

+0

Die dbscan-Implementierung speichert diese Informationen nicht. Das Clustering von Kernpunkten ist jedoch stabil. Wenn Sie den Algorithmus einmal mit 'borderPoints = TRUE' und einmal mit' borderPoints = FALSE' ausführen, sollten Sie die Antwort erhalten, nach der Sie suchen. –