2013-05-14 21 views
3

我已經開始使用ELKI進行數據分析,但是看起來很簡單的事情我似乎無法做到,那就是在運行DBSCAN後將計算出的羣集凸包輸出到文件中。我能夠通過可視化GUI顯現凸殼,但我無法生成KML文件。我也能夠將我的集羣結果寫入文件夾(使用ResultWriter resulthandler),但是當我設置KMLOutputHandler時,沒有生成文件。在日誌窗口中我沒有收到錯誤消息(即使將詳細參數設置爲true)。將ELKI DBSCAN簇的凸包寫入文件

在ELKI中生成KML文件有什麼竅門嗎?任何人都可以通過這樣做的步驟?

任何幫助,將不勝感激。

(順便說一句,是有可能產生阿爾法形狀與ELKI DBSCAN結果嗎?如果是的話,哪個參數需要調整?)

回答

3

所以這實際上是一個很大的問題...

  1. Cunvex船體:它們在ELKI中用於可視化,但不被視爲輸出結果的一部分,所以它們不保存到文件中。您可以使用的技巧是將可視化文件保存爲SVG並從該文件中提取它們,但它們將處於不同的座標系中。

    其中一個原因是,凸殼僅適用於二維歐幾里得空間 - 我想你想用它作爲空間數據,在那裏它可能實際上不會返回正確的凸包,然後由於地表曲率。此外,許多數據集將具有更高的維度。

    但是,您當然可以查看源代碼並調用凸包算法,然後將結果寫入您最喜歡的輸出格式。一般來說,就像您需要花時間進行預處理一樣,您還需要自定義輸出。

  2. 這使我想到第二個問題。 KMLResultHandler與ELKI 0.4.0:空間異常值檢測:數據,算法,可視化的出版密切相關。 這幾乎總結了這個類的作用:可視化空間異常值檢測。例如,它目前還沒有包含代碼來可視化空間數據集羣。爲了獲得班級的輸出,不幸的是,你需要確保一些限制。基本上,如果它發現它可以映射到對方的Polygon關係和OutlierResult,它會將其輸出到KML。 這是還沒有一個可以將任意結果寫入KML的類。它可能也需要更多的文檔。更值得一提的輸出工具的貢獻將不勝感激;但是一個可定製的,自動的,一般輸出到KML的是真的很難做到。特別是,如果某人未處理緯度 - 經度數據,則可能最終不得不包括投影能力,但例如, UTM預計的數據。因此,我建議您查看課程的源代碼並根據您的需求進行定製。在我看來,對KML的可視化將永遠需要大量的定製。

  3. 要生成alpha形狀(僅限於船體,而不是擴展的alpha形狀 - DBSCAN的最佳可視化可能僅由核心點的alpha形狀組成,並由ε的半徑擴展,然後應該包含邊界點。這是在願望清單中,但沒有實現),您只需要將-hull.alpha參數設置爲所需的alpha值。請注意,這發生在可視化投影中,而不是原始數據。如果軸的縮放比例不同,則Alpha形狀看起來會不同。同樣,您可能有興趣在原始數據向量上使用類AlphaShape,而不是導出預計可視化。然後,您可以輕鬆將生成的Polygon寫入您的自定義可視化文件。

如果實現使用集羣字母形狀(或凸包),這樣的KML可視化,我將不勝感激,如果你能促成這ELKI,使其適用於其他人。謝謝。

+0

謝謝你徹底和深思熟慮的答案 - 這是一個很大的幫助。 – whistler 2013-05-14 20:06:28