gpt4 book ai didi

java - Java中的邻居加入算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:22:48 28 4
gpt4 key购买 nike

我正在尝试实现邻居加入算法来创建系统发育树。该算法在这里描述,我一直将其用作引用:

http://en.wikipedia.org/wiki/Neighbor_joining

我已经到了需要开始合并节点的地步,在示例中它们将 a 和 b 合并到 u 中。我在如何在 java 中实现它时遇到了问题。我有一个这样的距离矩阵:

double[][] distanceMatrix = new double[][]{
{0, 7,11,14},
{7, 0,6,9},
{11,6,0,7},
{14,9,7,0}
};

我创建一个 Q 矩阵没有问题,并确定最小值,因此需要合并哪些节点。但是当涉及到实际编码时,我被难住了。我需要创建一个新的相似矩阵,用 U 替换 A 和 B,所以我假设我需要创建一个比我开始使用的矩阵小的新矩阵,所以我需要创建一个大小为 -1 的全新矩阵?我还需要跟踪索引,因为它们对应于特定的序列。每次我合并时,它们都需要向下移动,所以我想我需要某种列表来跟踪序列的去向?

有人可以告诉我如何开始吗?

最佳答案

如果您不想重建矩阵,可以将列标记为“已死”。

为每一列保留一个列表,其中包含聚合(合并)的内容。

对我来说,这听起来很像经典的层次凝聚聚类 (HAC);应该有很多关于如何在矩阵上实现它的示例。

关于java - Java中的邻居加入算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26749895/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com