问题标签 [hierarchical-clustering]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
49 浏览

cluster-analysis - 具有不同维度的聚类

在我的聚类问题中,不仅点可以来去去去,而且特征也可以删除或添加。我的问题是否有任何聚类算法。

具体来说,我正在寻找这类聚类算法的凝聚层次聚类版本。

0 投票
1 回答
710 浏览

r - 在 Adjusted Rand Index 中的参数 x 和 y 中输入值的正确步骤?

我试图使用调整后的兰德指数来比较聚类结果。这里,我以 Iris 数据集为例。这些是代码:

首先,我使用上表中的值手动计算 ARI(Hubert and Arabie,1985)。答案是 0.7311986。但是,当我使用 R 时,我无法得到相同的答案。

也许,我输入值的方式是错误的。有没有办法实现这一点,以便 R 的答案与手动计算相同?

0 投票
0 回答
369 浏览

cluster-analysis - 多层次层次聚类选择

我有层次聚类树(使用链接)。每个集群在树状图中都有自己的级别,对应于该集群的成本。我有成本为 c1 的 n1 集群、成本为 c2 的 n2 集群和成本为 c3 的 n3 集群的预算。问题是使用预算选择哪个集群来覆盖所有原始项目。和 c1>c2>c3。成本为 c1 的集群显然可以用于 c2 或 c3 集群。

对于只有一个预算类别,解决方案很简单:只需从根开始,然后在每个子树中,当我们低于 c1 时添加它。如果 n1 个类别在子树之前完成,则没有解决方案。

对于两个类别,它也很简单。查找 c1 成本的所有候选者。用 c2 子集群的数量标记它们,并按降序对它们进行排序。选择具有最大标签的 c1 类别。然后选择 c2 集群。

但是对于超过 2 个类别的问题很复杂,因为对 c2 类别的排序不一定会跟踪 c3 预算。

0 投票
3 回答
2768 浏览

machine-learning - 最大大小有限的聚类

我想对一些数据点进行聚类,但每个聚类的最大点数是有限的。所以每个集群都有一个最大大小。有没有任何聚类算法呢?我也可以定义自己的尺​​寸函数吗?例如,我不想将集群中的点数视为其大小,而是想对集群中所有点的列求和。

0 投票
2 回答
7336 浏览

r - 为什么聚类图标签使用行而不是 ID 列中的名称?

我正在处理一个数据集(第 1 列 = 基因名称和第 2 列 = 表达值),我正在尝试做一个聚类图,但我发现分支是用行号而不是列中的基因 ID 标记的1.

数据集:https ://dl.dropbox.com/u/364456/miRNA.csv

使用:

结果图:

在此处输入图像描述

我尝试进行 kmeans 聚类并最终收到此错误:

通过强制引入的 NA。

这表明我没有正确格式化我的数据文件。

有人知道这里发生了什么吗?

0 投票
0 回答
786 浏览

android - 消除地图叠加层中的标记冲突

我需要解决在地图上标记数千个项目的问题,即使用户缩小,标记也会以令人困惑的方式重叠。这是一个 Android MapView,但我的问题更笼统。

我知道Fluster基于网格的方案和各种启发式方法。

这些算法似乎不准确,因为聚类标记与质心不对应。我的应用程序对安全至关重要,并且标记相当大,因此近似值不够好。

在我发明了一种算法后,我了解到它是在 80 年代首次使用的。它的正确描述是“凝聚层次几何质心聚类”。 伪代码如下:

现在在每个簇的中心绘制一个标记。

我使用了可更新的 Delaunay 三角剖分和优先级队列来提高 (1) 的效率,但最近发现删除的 kd-trees也可以工作。DT 算法与 kd-trees(O(n log n) 平均值)具有相同的渐近复杂度,但我的猜测是它在实践中会更快。

问题:

  • 是否有更好的算法来查找集群?贪心算法可以产生比按最小数量分离标记严格需要的更少的集群。找到最大的集合可能是 NP 困难的。有比贪婪更好的启发式方法吗?
  • 是否值得尝试使用 kd-tree 代替 Delaunay 三角测量?DT 在 10,000 个节点上的性能在快速平板电脑上是微不足道的:缩放后最多 2 秒。
  • 是否存在将标记放置在集群质心的现有软件包?
0 投票
1 回答
8913 浏览

r - 使用 R 中的层次聚类生成描述数据集中聚类的热图

树状图这是我能够生成的热图我正在尝试获取由蛋白质 dna 相互作用组成的数据集,对数据进行聚类并生成显示结果数据的热图,以使数据看起来与对角线上排列的聚类聚类。我能够对数据进行聚类并生成该数据的树状图,但是当我使用 R 中的热图函数生成数据的热图时,集群不可见。如果您查看前两张图像,一张是我能够生成的树状图,第二张是我能够生成的热图,第三张只是显示我期望结果的集群热图的示例粗略看。从比较第二张和第三张图像可以看出,很明显第三张图像中有簇,而第二张图像中没有。 示例热图

这是我的数据集的链接:http: //pastebin.com/wQ9tYmjy

我能够对数据进行聚类并在 R 中生成一个就好了:

args <- commandArgs(TRUE);

matrix_a <- read.table(args[1], sep='\t', header=T, row.names=1);

location <- args[2];

matrix_d <- dist(matrix_a);

hc <- hclust(matrix_d,"average");

mypng <- function(filename = "mydefault.png") {

png(filename)

}

options(device = "mypng")

plot(hc);

我也可以生成热图:

matrix_a <- read.table("Arda_list.txt.binary.matrix.txt", sep='\t', header=T, row.names=1);

mtscaled <- as.matrix(scale(matrix_a))

heatmap(mtscaled, Colv=F, scale='none')

我试图关注克里斯托弗·巴雷的帖子: http ://digitheadslabnotebook.blogspot.com/2011/06/drawing-heatmaps-in-r.html ,但我错过了一些东西。任何想法,将不胜感激。我附上了我得到的热图的图像,以及树状图。图 3 取自 Christopher Bare 的帖子。谢谢

0 投票
1 回答
624 浏览

cluster-analysis - 链接类型“调整完成”如何在 WEKA 中用于凝聚层次聚类?

我能找到的关于“调整后的完整”链接的唯一描述是这样的:“与完整链接相同,但在集群距离内最大”

“在集群距离内”是什么意思?

最终如何使用这种链接方法计算两个集群之间的距离?

感谢您的回复!

0 投票
1 回答
475 浏览

machine-learning - 使用 weka.clusterers.HierarchicalClusterer 时出现 IllegalArgumentException

我搜索了很多,但我找不到任何示例代码,其中描述了如何使用 WEKA HierarchicalClusterer。使用以下 C# 代码会在“agg.buildClusterer(insts);”处给我一个 IllegalArgumentException。

StackTrace 说:

但没有指定 Message 或 InnerException。变量“insts”是一个实例对象,它只保存具有等量数字属性的实例。

是否有人能够快速找到我的错误或请发布/链接一些示例代码?此外,LinkType(注释代码)的设置是否正确?

谢谢, 比约恩

0 投票
2 回答
296 浏览

machine-learning - 确定分层集群中的组

我有一个算法可以将数据分组到一个层次聚类树中。该算法是 Toby Seagram 的 Programming Collective Intelligence 中描述的算法。树输出是一个二叉树,每个节点都有一个“距离”值,它告诉您两个子节点相距多远。

然后我可以将其显示为树状图,这使得将值组合在一起的人类点变得相当容易。但是,我很难想出一个自动决定组应该是什么的算法。我希望能够自动确定:

  • 组数
  • 每组应该放置哪些点

有没有一个标准的算法呢?