【发布时间】:2013-07-15 06:47:06
【问题描述】:
我正在尝试在我的程序中使用层次聚类的ELKI's SLINK implementation。
我有一组需要集群的对象(我自己的类型)。为此,我在聚类之前将它们转换为特征向量。
这就是我目前让它运行并产生一些结果的方式(代码在 Scala 中):
val clusterer = new SLINK(CosineDistanceFunction.STATIC, 3)
val connection = new ArrayAdapterDatabaseConnection(featureVectors)
val database = new StaticArrayDatabase(connection, null)
database.initialize()
val result = clusterer.run(database).asInstanceOf[Clustering[_ <: Model]]
现在,结果是一个Clustering,其中包含Model 类型的元素。我可以输出它们,但我不知道如何理解这个结果,特别是因为 SLINK 返回的模型类型为 DendrogramModel,它似乎无法参数化。
具体来说,如何将结果链接回我的原始元素(我之前创建变量 featureVectors 的元素)?
我假设我需要创建某种自定义模型或以某种方式通过初始化和执行算法来维护与原始元素的某些链接以从结果中检索。但是我找不到从哪里开始。
我知道不鼓励将 ELKI 嵌入到自己的程序中。但是,似乎以其他方式调用 ELKI 并没有什么不同:我需要在程序运行期间对结果进行聚类并将结果映射回我的对象。
【问题讨论】:
标签: cluster-analysis hierarchical-clustering elki