gpt4 book ai didi

java - 使用 Elki 创建树状图

转载 作者:行者123 更新时间:2023-12-02 01:24:57 27 4
gpt4 key购买 nike

我想绘制聚类结果的树状图。现在我正在使用 ELKI 0.7.5 中的 ElkiBuilder 进行集群。

在最好的情况下,我想直接绘制树状图。

如果不可能,我想从聚类中提取信息(距离)以使用另一个库(例如使用 newick 格式)创建树状图

因此我的问题:

  • 是否可以使用 ELKI 创建树状图?

  • 是否可以访问聚类过程中计算出的距离? (两个簇合并时使用的距离)

现在我正在使用以下代码进行聚类:

public Clustering<?> createClustering() {
double[][] distanceMatrix = new double[][]{
{0.0, 1.0, 3.0},
{1.0, 0.0, 4.0},
{3.0, 4.0, 0.0}
};
int noOfClusters = 2;
// Adapter to load data from an existing array.
DatabaseConnection dbc = new ArrayAdapterDatabaseConnection(distanceMatrix);
// Create a database (which may contain multiple relations!)
Database db = new StaticArrayDatabase(dbc, null);
// Load the data into the database (do NOT forget to initialize...)
db.initialize();

Clustering<?> clustering = new ELKIBuilder<>(CutDendrogramByNumberOfClusters.class) //
.with(CutDendrogramByNumberOfClusters.Parameterizer.MINCLUSTERS_ID, noOfClusters) //
.with(AbstractAlgorithm.ALGORITHM_ID, AnderbergHierarchicalClustering.class) //
.with(AGNES.Parameterizer.LINKAGE_ID, WardLinkage.class)
.build().run(db);
return clustering;
}

最佳答案

AGNES类(相反,我建议使用 AnderbergHierarchicalClustering ,它速度更快,但给出完全相同的结果)以称为“指针层次结构”的标准形式返回聚类( PointerHierarchyRepresentationResult )。 i 和 j 在高度 h 处的合并表示为从 i 到 j 的指针,高度为 h。之后,j代表合并后的簇。这种基本形式是由 Sibson 等人引入的。 1973 年使用 SLINK 算法。

特别是其中包含 y信息( getParentDistanceStore )、合并(由 getParentStore 给出),并且它可以计算排列点的顺序以进行可视化 getPositions .

您可能想查看 DendrogramVisualization 的代码,它负责在 GUI 中创建 SVG 树状图。

关于java - 使用 Elki 创建树状图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57592693/

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