2017-08-23 4 views
0

Ich habe nur eine sehr kleine Probengröße, jene 16 Koordinaten enthalten:Geospatial-Clustering mit einer kleinen Probengröße

x <- c(13.41667,13.31070,13.58806,13.31070,13.18361, 
     13.19694,13.27821,13.25917,13.62833,13.31056, 
     13.30170,13.30880,13.40210,13.41010,13.53250, 
     13.06220) 

y <- c(52.47944,52.45768,52.54944,52.45768,52.43417, 
     52.50778,52.50499,52.57444,52.44444,52.45750, 
     52.45370,52.56440,52.46750,52.52050,52.38220, 
     52.38130) 

ich versuchte, sie mit kmeans ersten Cluster, aber ich denke, dass ein Kreis orientierte Clustering ist nicht wonach ich suche. Ich freute mich, eine Möglichkeit zu finden, die Punkte mit einem Minimum von 2 Punkten pro Cluster Cluster, das heißt in Bezug auf ihre Dichte

z <- cbind(x,y) 
res <- dbscan(z, eps=0.05, minPts = 2) 
hullplot(z,res) 

DBSCAN Cluster Plot of z with eps=.05 and minPt=2

Aber auf diese Weise führt zu einem Clustering mit vielen Punkten außerhalb der Bereich. Haben Sie noch andere Ideen, wie Sie räumliche Daten mit einer kleinen Stichprobengröße wie dieser zusammenfassen können?

+0

Hierarchical Clustering ist oft die beste Wahl für kleine Daten. Schneiden Sie den Baum nicht in einer Höhe, sondern identifizieren Sie Zweige, die Sie für interessant halten. –

Antwort

3

Versuchen Sie, den Parameter eps zu entspannen.

kNNdistplot(z, k = 2) 

## Looks like the 'knee' is at eps = 0.08ish rather than 0.05 

abline(h=.08, col = "red", lty=2) 

enter image description here

Dann

res <- z %>% dbscan(., eps = 0.08, MinPts = 2) 
hullplot(z, res) 

enter image description here

Verwandte Themen