标签: hierarchical-clustering

如何标记剪切树形图的终端节点?

我使用以下代码在特定高度剪切树形图.我遇到的问题是当我剪切树形图时,我无法弄清楚如何向节点添加标签.如何用标签剪切树形图使用R程序?

library(Heatplus)
cc=as.dendrogram(hclust(as.dist(mat),method="single"))
cutplot.dendrogram(cc,h=20)
Run Code Online (Sandbox Code Playgroud)

r hierarchical-clustering dendrogram dendextend

4
推荐指数
1
解决办法
2714
查看次数

python中是否有任何采用距离矩阵的好的层次聚类包?

我有一个由成对的 levenshtein 距离组成的距离矩阵。我正在使用 scikits-learn。但是层次聚类算法不以距离矩阵作为聚类的输入。所以我必须寻找一个可以做到这一点的新包。

是否有任何快速且经过良好测试的软件包用于层次聚类?

python hierarchical-clustering scikit-learn

4
推荐指数
1
解决办法
2087
查看次数

如何在R中对数据矩阵进行层次聚类?

我正在尝试对由科学数据生成的数据矩阵进行聚类。我知道我希望如何完成聚类,但不确定如何在 R 中完成这一壮举。

数据如下:

            A1     A2     A3     B1     B2     B3     C1     C2     C3
sample1      1      9     10      2      1     29      2      5     44
sample2      8      1     82      2      8      2      8      2     28
sample3      9      9     19      2      8      1      7      2     27
Run Code Online (Sandbox Code Playgroud)

请考虑 A1、A2、A3 是单个处理的三个重复,B 和 C 也是如此。Sample1 是不同的测试变量。因此,我想对这个矩阵进行分层聚类,以便查看列之间的总体差异,特别是我将制作树状图(树)来观察列的相关性。

有谁知道如何适当地聚类这样的东西?我尝试这样做:

raw.data <- read.delim("test.txt",header=FALSE,stringsAsFactors=FALSE)
dist.mat<-vegdist(raw.data,method="jaccard")
clust.res<-hclust(dist.mat)
plot(clust.res)
Run Code Online (Sandbox Code Playgroud)

...但是,这会产生一棵树,每个样本变量都有分支,而不是每一列。感谢您的任何建议!

r hierarchical-clustering dendrogram

4
推荐指数
1
解决办法
3860
查看次数

使用Python从混淆矩阵进行层次聚类

使用以下答案,我尝试根据混淆矩阵编码分层类聚类。混淆矩阵用于评估分类问题的结果,并且不对称。每行代表实际类中的实例。这是一个混淆矩阵的示例,您可以在其中看到“零”类的 25% 的样本被预测为“六”类。

在此输入图像描述

我尝试用以下方法修改代码:

conf_mat = 1 - conf_mat   # 1.0 means dissimilarity
sch.linkage(conf_mat, method='warp')
Run Code Online (Sandbox Code Playgroud)

但我得到了错误的结果。

我应该如何组织数据才能应用聚类?

下面应该给出簇的重新排列顺序,对吧?

ind = sch.fcluster(Y, 0, 'distance')
Run Code Online (Sandbox Code Playgroud)

python cluster-analysis hierarchical-clustering hierarchical scipy

4
推荐指数
1
解决办法
5252
查看次数

如何使用scikit-learn剪影得分计算scipy的fcluster的Silhouette Score?

我使用scipy.cluster.hierarchy.linkage作为聚类算法,并将结果链接矩阵传递给scipy.cluster.hierarchy.fcluster,以获得针对各种阈值的展平簇.

我想计算结果的Silhouette得分并比较它们以选择最佳阈值并且不想自己实现它但是使用scikit-learn的sklearn.metrics.silhouette_score.如何重新排列我的聚类结果作为sklearn.metrics.silhouette_score的输入?

python hierarchical-clustering scipy scikit-learn

4
推荐指数
1
解决办法
2384
查看次数

用于分层聚类Python的三角形与方形距离矩阵?

我一直在试验,Hierarchical Clustering而且R它很简单hclust(as.dist(X),method="average") .我发现一个方法Python也很简单,除了我对输入距离矩阵发生的事情感到有点困惑.

我有一个相似性矩阵(DF_c93tom称为较小的测试版本DF_sim),我将其转换为相异矩阵DF_dissm = 1 - DF_sim.

我使用它作为输入linkage来自,scipy但文档说它采用方形或三角形矩阵.我得到一个不同的集群用于输入查询一个lower triangle,upper trianglesquare matrix.为什么是这样?它需要文档中的上三角形,但下三角形簇看起来非常相似.

我的问题是,为什么所有的集群都不同?哪一个是正确的?

这是输入距离矩阵的文档 linkage

y : ndarray
A condensed or redundant distance matrix. A condensed distance matrix is a flat array containing the upper triangular of the distance matrix. 
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd …
Run Code Online (Sandbox Code Playgroud)

python numpy machine-learning hierarchical-clustering scipy

4
推荐指数
1
解决办法
1662
查看次数

scipy.cluster.hierarchy.linkage 的返回值是什么意思?

假设我们有 X 矩阵如下:

[[9 0]
[1 4]
[2 3]
[8 5]]
Run Code Online (Sandbox Code Playgroud)

然后,

from scipy.cluster.hierarchy import linkage
Z = linkage(X, method="ward")
print(Z)
Run Code Online (Sandbox Code Playgroud)

返回矩阵如下:

[[  1.           2.           1.41421356   2.        ]
 [  0.           3.           5.09901951   2.        ]
 [  4.           5.          10.           4.        ]]
Run Code Online (Sandbox Code Playgroud)

返回值的含义是什么?

python hierarchical-clustering scipy

4
推荐指数
1
解决办法
2391
查看次数

Dendextend:关于如何根据定义的组为树状图的标签着色

我正在尝试使用名为 dendextend 的出色 R 包来绘制树状图并根据一组先前定义的组为其分支和标签着色。我已经阅读了 Stack Overflow 中的答案以及 dendextend 小插图的常见问题解答,但我仍然不确定如何实现我的目标。

假设我有一个数据框,其中第一列包含用于聚类的个人姓名,然后是几列包含要分析的因素,最后一列包含每个人的组信息(见下表) .

individual  282856  282960  283275  283503  283572  283614  284015  group
pat15612    0   0   0   0   0   0   0   g2
pat38736    0   0   0   0   0   0   0   g2
pat38740    0   0   0   0   0   1   0   g2
pat38742    0   0   0   0   0   1   0   g4
pat38743    0   0   1   0   0   1   0   g3
pat38745    0   0   1   0   1   0   0   g4
pat38750    0   0   0   1 …
Run Code Online (Sandbox Code Playgroud)

r hierarchical-clustering dendextend

4
推荐指数
1
解决办法
1556
查看次数

在多个阈值上将 SciPy 分层树状图切割成簇

我想将我的 SciPy 的树状图切割成多个阈值上的多个集群。

我试过使用 fcluster,但它只能削减一个阈值。

(例如,这是我从另一个问题中提取的一段代码。)

import pandas

data = pandas.DataFrame({
'total_runs': {0: 2.489857755536053, 1: 1.2877651950650333, 2: 0.8898850111727028, 3: 0.77750321282732704, 4: 0.72593099987615461, 5: 0.70064977003207007, 6:0.68217502514600825,7: 0.67963194285399975, 8: 0.64238326692987524, 9:0.6102581538587678, 10: 0.52588765899448564, 11: 0.44813665774322564, 12: 0.30434031343774476, 13: 0.26151929543260161, 14: 0.18623657993534984, 15: 0.17494230269731209,16: 0.14023670906519603, 17: 0.096817318756050832, 18:0.085822227670014059, 19: 0.042178447746868117, 20: -0.073494398270518693,21: -0.13699665903273103, 22: -0.13733324345373216, 23: -0.31112299949731331, 24: -0.42369178918768974, 25: -0.54826542322710636,26: -0.56090603814914863, 27: -0.63252372328438811, 28: -0.68787316140457322,29: -1.1981351436422796, 30: -1.944118415387774,31: -2.1899746357945964, 32: -2.9077222144449961}, 
'total_salaries': {0: 3.5998991340231234,1: 1.6158435140488829, 2: 0.87501176080187315, 3: 0.57584734201367749, 4: 0.54559862861592978, 5: …
Run Code Online (Sandbox Code Playgroud)

python hierarchical-clustering dendrogram scipy

4
推荐指数
1
解决办法
2385
查看次数

如何在最佳 K 处排列(剪切)树状图

如何在树状图中画一条线,对应于给定标准的最佳 K

像这样:

在此处输入图片说明

让我们假设这是我的树状图,最好的 K 是 4。

data("mtcars")
myDend <-  as.dendrogram(hclust(dist(mtcars))) 
plot(myDend)
Run Code Online (Sandbox Code Playgroud)

我知道该abline函数能够在图形中绘制类似于上面显示的线条。但是,我不知道如何计算高度,因此该函数用作abline(h = myHeight)

plot r hierarchical-clustering dendrogram

4
推荐指数
1
解决办法
3061
查看次数