WEKA 层次聚类输出 - 叶识别歧义

WEKA Hierarchical Clustering Output - Leaf identification ambiguity

当从 WEKA 调用层次聚类时(我正在使用 C# 的 IKVM,但我认为这不重要,答案可以使用任何一种语言),有一个选项可以生成 Newick 格式的树状图,但是在尝试解析它时,我需要识别叶子并且 link 每个叶子都指向输入中的一个数据(向量)。

例如输入arff为:

@RELATION points


@ATTRIBUTE x REAL
@ATTRIBUTE y REAL

@DATA
1.0,2.0
3.0,1.0
1.0,3.0
2.0,1.0

我会得到以下 Newick 格式的树状图:

((2.0:1,3.0:1):1.49661,(1.0:1,1.0:1):1.49661)

这里不清楚点是怎么识别的(第一个分支有2和3,第二个分支有1和1,但不清楚哪个是哪个)

有没有办法改变这个输出的表示方式,或者在 Newick 输出中添加一个额外的唯一属性以更好的方式识别基准?

找到解决方案,它可能不适用于所有距离函数,但它适用于 Weka 层次聚类的默认配置: 解决办法就是在最后加一个额外的字符串属性,好像在所有的计算中都被忽略了,这个可以包含行或者向量的唯一标识,这个会被WEKA用来输出最终的图(Newick dendrogram) .

ARFF 示例:

@RELATION points

@ATTRIBUTE x REAL
@ATTRIBUTE y REAL
@ATTRIBUTE id   STRING

@DATA
1,5,100 
2,6,200
3,5,300

这将导致以下 Newick:

(((100:1.41421,200:1.41421):-0.05358,300:1.36064):0.441,400:1.80164)

当忽略最后一个属性时,这将导致完全相同的簇,但叶子的命名不同:

(((5.0:1.41421,6.0:1.41421):-0.05358,5.0:1.36064):0.441,6.0:1.80164)

这是模棱两可的。