2013-05-21 27 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