问题标签 [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.
r - 层次聚类大稀疏距离矩阵R
我试图在非常大的距离上执行 fastclust,但遇到了问题。
我有一个非常大的 csv 文件(大约 9100 万行,所以 for 循环在 R 中花费的时间太长)关键字(大约 50,000 个唯一关键字)之间的相似性,当我读入 data.frame 时看起来像:
这是一个稀疏列表,我可以使用 sparseMatrix() 将其转换为稀疏矩阵:
但是,当我尝试使用 as.dist() 将其转换为 dist 对象时,我收到来自 R 的“问题太大”的错误。我已阅读此处的其他 dist 问题,但其他人建议的代码不适用于我上面的示例数据集。
谢谢你的帮助!
python - Python中距离到三角距离矩阵的CSV
我在关键字之间有大量相似性的 csv,我想将其转换为三角距离矩阵(因为它非常大并且稀疏会更好)以使用 scipy 执行层次聚类。我当前的数据 csv 看起来像:
我不知道如何做到这一点,也找不到任何简单的 Python 集群教程。
谢谢你的帮助!
r - 在 r 中决斗树状图(在 r 中将树状图背靠背放置)
是否有任何相当直接的方法可以在 r 中“背靠背”放置两个树状图?这两个树状图包含相同的对象,但聚类方式略有不同。我需要强调树状图的不同之处。那么类似于使用soilDB包所做的事情,但可能涉及较少且以土壤科学为导向?
如果能够排列树状图以最大化对象之间的直线数量(见上文),那就太好了,因为这将强调树状图之间的任何差异。
有任何想法吗?
hierarchical-clustering - 2D ArrayList 中的单链接聚类
您好我正在寻找一种在 Java Netbeans 中使用 2D ArrayList 进行单链接聚类的方法。
然后在图表上可视化结果。
据我所知 - LingPipe 可以做到,但它使用 HashSet 字符串,我认为它可能会准确地显示结果。
有什么建议么?我真的很感激帮助。谢谢!:D
algorithm - 代表的递增层次结构
我有一个遵循这个方案的增量聚类算法:
为了加快从 x 搜索最近的中心,我想要一个中心的层次结构(使用树),我们可以在每次考虑新数据点时增量更新。
树的每个内部节点都表示为该节点下质心的平均值。当更新一个给定的质心时(因为一个新的数据点被分配给这个质心),我们应该重建这个质心之上的所有节点。
因此,算法变成了这样:
在这种情况下如何定义这个函数?有没有更好的解决方案?
python - Python查找树状图的替代方法
我有尺寸为 8000x100 的数据。我需要对这 8000 个项目进行聚类。我对这些物品的订购更感兴趣。对于小数据,我可以从上述代码中获得所需的结果,但对于更高维度,我不断收到运行时错误“RuntimeError:获取对象的 str 时超出了最大递归深度”。是否有另一种方法可以从“Z”获取重新排序的列。
r - 使用 R 进行 K 中心聚类
我找不到使用 R 进行 k-centers 聚类的简单库函数,而我可以找到 k-means ( kmeans()
) 和层次聚类 ( hclust()
)。
如本文所述,是否有使用 R 进行简单贪婪 k 中心聚类的库函数
如果不是 - 因为我是 R 新手 - 将如何实现它(我理解逻辑 - 只是不知道如何用 R 代码实际编写它)。
r - R中的多尺度层次聚类错误
我正在使用名为 的 R 包进行层次聚类,该包pvclust
通过hclust
合并引导来计算获得的聚类的显着性水平。
考虑以下具有 3 个维度和 10 个观察值的数据集:
当我hclust
单独使用时,聚类对于欧几里得度量和相关度量都运行良好:
但是,当使用 each 设置时pvclust
,如下所示:
...我收到以下错误:
- 欧几里得:
Error in hclust(distance, method = method.hclust) : must have n >= 2 objects to cluster
- 相关性:
Error in cor(x, method = "pearson", use = use.cor) : supply both 'x' and 'y' or a matrix-like 'x'
。
请注意,距离是通过计算的,pvclust
因此不需要事先计算距离。另请注意,hclust
方法(平均值、中位数等)不会影响问题。
当我将数据集的维度增加到 4 时,pvclust
现在运行良好。为什么我pvclust
在 3 维及以下得到这些错误,但没有得到这些错误hclust
?此外,当我使用 4 维以上的数据集时,为什么错误会消失?
python - Python中层次聚类的凸壳
我正在使用层次聚类来尝试可视化已扁平化为二维的大量数据。我想要做的是创建一个可视化,允许我通过将集群渲染为其组成点的凸包来查看层次结构中不同高度的数据。这个问题最难的部分是我需要一种算法,当我向上移动时,它可以有效地合并对集群的凸包。我已经看到了很多用于在 O(n log n) 时间内计算点的凸包的算法,但在这种情况下,利用问题的子结构似乎会更有效,但我不完全确定如何。
编辑:
有关更多信息,数据结构是一个数组,它从聚类的原始点开始,然后说明哪些点/聚类被组合以形成下一个聚类。所以它有点像树/指针结构,但包含在一个大数组中。重要的部分是,查看任何超级集群的两个组成集群是有效的,但获取属于集群的所有点的集合并不高效。所以任何合理的算法都必须自下而上地工作。
所以假设我们在某个地方的层次结构的中间,并且预先计算的层次结构表明集群 A 和 B 被合并以产生集群 C。我们是从下往上的,所以我们已经计算了簇 A 和 B 中的点,因此我们只需将它们组合起来即可生成簇 C 的凸包。簇 A 的凸包实际上可以是一个点、一对或一个完整的多边形。集群 B 也是如此。因此,有几种情况应该如何合并这些以形成集群 C 的凸包,但我敢打赌,有一个聪明的解决方案可能会将单例和对以与多边形相同的方式处理。
最明显的解决方案是使用集群 A 和 B 的凸包的组合点集来计算凸包。但我需要在 100k 点的层次结构上执行此操作,所以我想知道是否有更有效的组合 A 和 B 的凸包的方法。
编辑2:
好的,所以我尝试用 ASCII 码来说明我的意思。簇A的凸包是1-2-3-4,B的凸包是5-6-7-8,C的凸包是1-2-4-7-8-5。据推测,集群 A 和 B 在它们的外壳内包含额外的点,但这些显然不可能成为 C 外壳的一部分,因此问题在于确定在何处“拼接”集群 A 和 B 的外壳以形成C 的船体,基于点的坐标。这是整个过程的归纳步骤。(最终 C 将与集群 D 组合,依此类推,直到算法以最顶层的集群结束,该集群将所有点的凸包作为其凸包)。
r - 匹配模式以选择正确的绘图颜色
当我对我的数据进行聚类时,我遇到了一个问题。我想按疾病类型为集群的分支着色。所以我写了一个应该为我做这件事的小脚本。
但问题在于,fit$labels
它不仅仅包含疾病类型,即患者 ID。因此,如果我尝试将 SPORADIC 与我的标签名称匹配,我只会得到 NA 值。所以我想知道如何告诉脚本它应该在标签中寻找一个模式,而不是匹配整个标签名称。
Mydata 如下所示: