我已经开始使用ELKI进行数据分析,但是我似乎无法做的一件看似简单的事情就是在运行DBSCAN后将计算出的集群凸包输出到文件中。我能够通过可视化gui可视化凸包,但我无法生成KML文件。我也能够将我的聚类结果写入文件夹(使用ResultWriter resulthandler),但是在设置KMLOutputHandler时没有生成文件。我在日志窗口中没有收到任何错误消息(即使verbose参数设置为true)。
在ELKI中生成KML文件有诀窍吗?任何人都可以完成这个步骤吗?
任何帮助都将不胜感激。
(另外,是否可以使用ELKI为DBSCAN结果生成alpha形状?如果是,必须调整哪个参数?)
答案 0 :(得分:3)
所以这实际上是很多问题......
Cunvex外壳:它们在ELKI中用于可视化,但不被视为输出结果的一部分,因此它们不会保存到文件中。您可以使用的技巧是将可视化保存为SVG并从该文件中提取它们,但它们将位于不同的坐标系中。
其中一个原因是凸包仅用于2D欧几里德空间 - 我想你想将它用于空间数据,实际上它可能不会返回正确的凸包然后由于曲率地球表面。此外,许多数据集具有更高的维度。
但是,您当然可以查看源代码并调用凸包算法,然后将结果写入您喜欢的输出格式。通常,正如您需要花时间进行预处理一样,您还需要自定义输出。
这让我想到了第二个问题。 KMLResultHandler
与ELKI 0.4.0的出版密切相关:空间离群检测:数据,算法,可视化。
这几乎总结了这个类的作用:可视化空间离群值检测。例如,它目前尚未包括用于可视化空间数据集群的代码。为了从类中获取输出,不幸的是,您需要确保一些限制。基本上,如果它找到一个Polygon
关系和一个OutlierResult
它可以相互映射,它会将其输出到KML。
尚未可以将任意结果写入KML的类。它也可能需要更多的文档。将会赞赏更一般的输出工具的贡献;但是KML的可定制,自动,通用输出真的很难做到。特别是,如果有人不处理纬度 - 经度数据,您可能最终还必须包含投影功能,但是UTM预测数据。
因此,我建议查看该类的源代码并根据您的需要进行自定义。在我看来,KML的可视化总是需要大量的自定义。
要生成alpha形状(只有船体,而不是扩展的alpha形状 - DBSCAN的最佳可视化可能只包含核心点的alpha形状,扩展为epsilon的半径,然后应包括边界点。这是在愿望清单上,但没有实现),您只需要将-hull.alpha
参数设置为所需的alpha值。请注意,这发生在可视化投影中,而不是原始数据。如果轴的缩放比例不同,则alpha形状看起来会有所不同。同样,您可能有兴趣在原始数据向量上使用类AlphaShape
,而不是导出投影的可视化。然后,您可以轻松地将生成的Polygon
写入自定义可视化。
如果您使用alpha形状(或凸包)为集群实现这样的KML可视化,我将不胜感激,如果您可以将此贡献给ELKI以使其也可供其他人使用。谢谢。