java - OPTICS Clustering algorithm. How to get the best epsilon -
i implementing project needs cluster geographical points. optics algorithm seems nice solution. needs 2 parameters input(minpts , epsilon), are, respectively, minimum number of points needed consider them cluster, , distance value used compare if 2 points in can placed in same cluster.
my problem that, due extreme variety of points, can't set fixed epsilon. @ image below.
the problem http://s13.postimage.org/u5a08nwvb/immagine.png
the same points structure in different scale result different. suppose set minpts=2 , epsilon = 1km. on left, algorithm create 2 clusters(red , blue), on right create 1 single cluster containing of points(red), obtain 2 clusters on right.
so question is: there kind of way calculate dynamically epsilon value result?
edit 05 june 2012 3.15pm: thought using optics algorithm implementation javaml library, seems dbscan algorithm implementation. question is: know java based implementation of optics algorithm?
thank , excuse my poor english.
marco
the epsilon value in optics solely limit runtime complexity when using index structures. if not have index acceleration, can set infinity.
to quote wikipedia on optics
the parameter \varepsilon strictly speaking not necessary. can set maximum value. when spatial index available, play practical role when comes complexity.
what seem have looks more dbscan optics. in optics, should not need choose epsilon (it should have been called max-epsilon authors!), cluster extraction method take care of that. using xi extraction proposed in optics paper?
minpts more important. should try value of @ least 5 or 10, not 2. 2, performing single-linkage clustering!
the example gave above should work fine once increase minpts!
re: edit: can see in wikipedia article, elki has proper optics implementation , it's in java.
Comments
Post a Comment