2013-05-21 24 views
0

的默认群集设置似乎工作细特别是EuclideanDistanceFunction。不过,我想运行LNG /纬度的形式与空间数据聚类,当我改变距离函数elki崩溃对我道:如何使用ELKI聚类LatLngDistanceFunction

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 to MBR mindist is not yet implemented. 
at de.lmu.ifi.dbs.elki.distance.distancefunction.geo.LngLatDistanceFunction.doubleMinDist(Unknown Source) 
at de.lmu.ifi.dbs.elki.algorithm.KNNJoin.processDataPagesDouble(Unknown Source) 
at de.lmu.ifi.dbs.elki.algorithm.KNNJoin.processDataPagesOptimize(Unknown Source) 
at de.lmu.ifi.dbs.elki.algorithm.KNNJoin.initHeaps(Unknown Source) 
at de.lmu.ifi.dbs.elki.algorithm.KNNJoin.run(Unknown Source) 
at de.lmu.ifi.dbs.elki.algorithm.clustering.DeLiClu.run(Unknown Source) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at de.lmu.ifi.dbs.elki.algorithm.AbstractAlgorithm.run(Unknown Source) 
at de.lmu.ifi.dbs.elki.workflow.AlgorithmStep.runAlgorithms(Unknown Source) 
at […] 

它不清楚(我)这是什么错误表示。集群功能可能不适用于地理空间数据吗?

是否有一个简单的解决方法吗?难以实施所需的功能(心态)?

回答

1

由于错误很明确指出:

的MBR膜生物反应器mindist尚未实现。

然而,该算法您尝试使用 - DeLiClu - 需要计算两个矩形之间的最小距离。在大地坐标中,不在2d平面中。

欢迎您贡献足够的公式。球面几何不是微不足道的,所以要注意计算最小的矩形到矩形的距离并不是微不足道的。这是不是足以看看四个角落。到目前为止,我们只解决了这个问题,以点对矩形的情况。这是可行的,因为矩形是轴对齐的,但是到目前为止还没有人坐下来进行数学计算,然后再坐下来进一步优化公式以尽可能减少三角函数。

最简单的解决方法可能是使用OPTICS与常规R-树(使用批量加载与STR!),而不是DeLiClu,因为这种算法将产生一个几乎相同的结果,但并不需要矩形到矩形最小距离。理论上,DeLiClu更快;在实践中,这并不一定成立,因为R-Trees上KNN连接的代码要复杂得多(因此也更难优化)。

+0

感谢explanation-尚不清楚对我有什么代码试图做。我可能会看看矩形到矩形的心理学家,但我可能会先用Optics做一些基准测试,并看看它是如何执行的,正如您所建议的那样。 – tcb