我正在尝试使用ELKI的SLINK实现我的程序中的层次聚类。
我有一组需要聚类的对象(属于我自己的类型)。为此,我在聚类之前将它们转换为特征向量。
这就是我目前让它运行并产生一些结果的方式(代码在 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 不会有任何不同:我需要在程序运行时将结果聚类并映射回我的对象。
The DendrogramModel
不包括簇中的对象。型号是额外的meta集群上的数据。
Use the getIDs()访问 a 的成员的方法Cluster实例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)