data mining - How to use ELKI clustering with LatLngDistanceFunction -
the default settings clustering seems work fine- euclideandistancefunction. however, want run clustering spatial data in form of lng/lat , when change distance function elki crashes on me:
running: -dbc.in /tmp/test_data_lnglat-test.dat -db.index tree.spatial.rstarvariants.deliclu.deliclutreefactory -algorithm clustering.deliclu -algorithm.distancefunction geo.lnglatdistancefunction -deliclu.minpts 4 task failed java.lang.unsupportedoperationexception: mbr mbr mindist not yet implemented. @ de.lmu.ifi.dbs.elki.distance.distancefunction.geo.lnglatdistancefunction.doublemindist(unknown source) @ de.lmu.ifi.dbs.elki.algorithm.knnjoin.processdatapagesdouble(unknown source) @ de.lmu.ifi.dbs.elki.algorithm.knnjoin.processdatapagesoptimize(unknown source) @ de.lmu.ifi.dbs.elki.algorithm.knnjoin.initheaps(unknown source) @ de.lmu.ifi.dbs.elki.algorithm.knnjoin.run(unknown source) @ de.lmu.ifi.dbs.elki.algorithm.clustering.deliclu.run(unknown source) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:39) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:25) @ java.lang.reflect.method.invoke(method.java:597) @ de.lmu.ifi.dbs.elki.algorithm.abstractalgorithm.run(unknown source) @ de.lmu.ifi.dbs.elki.workflow.algorithmstep.runalgorithms(unknown source) @ […]
its not clear (to me) error means. possible clustering functions not work geo spatial data?
is there simple workaround this? difficult implement required function (mindset)?
as error pretty states:
mbr mbr mindist not yet implemented.
however, algorithm tried use - deliclu
- needs compute minimum distance between 2 rectangles. in geodetic coordinates, not in 2d plane.
you welcome contribute adequate formulas. spherical geometry not trivial, aware computing minimal rectangle-to-rectangle distance non trivial. not sufficient @ 4 corners. far, have solved point-to-rectangle case. it's doable - rectangles axis aligned - nobody far bothered sit down , math, , sit down more , optimize formulas require little trigonometric functions possible.
the simplest workaround use optics
regular r-tree (use bulk loads str!) instead of deliclu
, because algorithm yield identical result, not need rectangle-to-rectangle minimum distance. in theory, deliclu
faster; in practise not hold, because of more complex (and harder optimize) code of knn joins on r-trees.
Comments
Post a Comment