【问题标题】:ELKI how to increase the precision?ELKI如何提高精度?
【发布时间】:2014-03-21 04:30:36
【问题描述】:

我正在使用 ELKI mini GUI 对我的数据点进行聚类。我有大约 1300 个 GPS 数据点,我想对我的 GPS 点(DBSCAN 和 OPTICS)进行聚类。作为 dbc.in 的输入文件,我使用只有 2 列(X,Y)的 csv 文件。问题是,我的 X,Y(投影)坐标非常精确,精确到小数点后 6 位。但是在运行集群算法之后,我的精度越来越低(最多小数点后 3 位)。如何提高输出点的精度?

而且在生成集群时,它会自动调用一些与我的实际点 ID(ID、X、Y)不对应的虚拟 ID。但是,输入 csv 中没有给出 ID。它仅包含两列 (X,Y)。

【问题讨论】:

  • 你能分享一个示例输入和输出行吗? ELKI 分配内部 ID,但如果您不需要它们,您可以直接丢弃它们。
  • 这里是我的问题的详细解释。输入文件格式 (X) (Y) ______________________ 3456.124357 5673.4567 3456.109453 5673.4451 .................................... ........ 输出文件(内部 ID 和 X,Y 被截断) ________________ 651 3456.1244 5673.46 652 3456.1095 5673.45 问题是因为值被截断并且输出文件不包含实际 ID点(比如从 0 开始),所以我无法识别哪些点是聚类的,哪些点属于哪个聚类。
  • 您可以编辑问题以使其更具可读性吗?除非绝对必要,否则避免审查数据。使用 MiniGUI 时,使用FixedDBIDsFilter 获取与输入文件行号对应的DBIDs。您是否考虑过为您的用例编写自定义输出模块?
  • 谢谢 Anony-Mouse。使用 FixedDBIDsFilter 解决了 ID 问题。你能告诉我如何增加输出聚集/噪声点的小数点(精度)吗?我希望它与输入的完全相似。
  • 浮点是有损的,这些数字的精确格式因语言而异。 AFAICT,ELKI 只使用 Java 格式。没有选项可以说“使用与输入完全相同的数字写入”。这需要将原始数据存储为字符串。

标签: dbscan elki optics-algorithm


【解决方案1】:

ELKI 依赖于 double 来表示数字。如果您需要更高的精度,则必须实现自己的解析器和输出模块(不过这很容易,因为我们拥有高度模块化的架构)。

默认的文本输出序列化由 Java 处理。因此,精度是您默认从 Java 获得的。如果您使用的是DoubleVector,这应该是 15-16 位的精度,如果您使用的是FloatVector,则应该是 7-8 位的精度。

使用 groovysh 快速检查:

new DoubleVector([12345.678901234567890, 3456.109453] as double[]);
===> 12345.678901234567 3456.109453
new FloatVector([12345.678901234567890, 3456.109453] as float[]);
===> 12345.679 3456.1094

仅产生 doublefloat 精度的预期损失。

获取行标签的最佳方法是……将行标签添加到您的数据中。

写。对于 cmets 中的附加问题:默认解析器会将文件开头的文本行视为列标签。因此,只需将“X Y”放入文件的第一行即可。

因此,一个合理的输入格式将是:

X Y Label
1 2 Point7
3 4 "Point 8"

以下不是很好的想法:

5 6 123shouldwork
7 8 don't do this: 3 parser will retain the 3

标签应该是非数字的,这样解析器会自动将其视为标签。否则,您必须设置适当的参数。

DBID 用于内部处理。也许我们根本不应该将它们写入输出。 FixedDBIDFilter 是一种骇人听闻的解决方法;当使用需要基于 id 的哈希算法并在 MiniGUI 中进行多次运行时,它旨在用于获得可重现的哈希。因为在多次运行时,DBID 会不断被枚举。

【讨论】:

  • 感谢您的详细解释。我还有一个疑问。如何以 jpeg 或任何其他图像格式保存可视化(绘图)。我尝试了导出选项,但图像的分辨率很差。
  • 最好的导出格式是 SVG。然后你可以用inkscape编辑它,例如更改字体、颜色或标签位置。但如果选择像素格式,还可以设置图像分辨率。 (对于 PDF 导出,还要添加 Batik pdf 导出罐子)不过;周围有更好的可视化工具。 ELKI 中的可视化是一种方便的功能。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多