我正在根据我的数据绘制聚类图。我已经完成了整个情节,但我的标签文本太大,无法正确阅读情节。任何人都知道如何使标签更小。
我正在使用“sparcl”包,我的功能是:
ColorDendrogram(fit,y=col.int, main = "Clusters from 216 samples",
branchlength = 0.20, labels = fit$labels, xlab = NULL,
sub = NULL, ylab = "", cex.main = NULL)
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,分支文本太大并且它们相互重叠。我希望叶子的文字小 25%。我已经查看了 Sparcl 包的文档,但这似乎不起作用。
我正在使用sklearn.cluster.AgglomerativeClustering. 它从每个数据点一个集群开始,并迭代地将两个“最接近”的集群合并在一起,从而形成一棵二叉树。什么构成集群之间的距离取决于链接参数。
了解每一步合并集群之间的距离会很有用。当下一个要合并的集群相距太远时,我们可以停止。唉,这似乎在AgglomerativeClustering.
我错过了什么吗?有没有办法恢复距离?
我有以下代码:
pheatmap::pheatmap(mtcars, clustering_method = "ward.D2")
Run Code Online (Sandbox Code Playgroud)
这会产生如下图所示的情节。
我想做的是做这些:
mpg和qsec节点移至 after wt。disp到hp最左边。这是一件有效的事情吗?如果是这样我怎样才能实现这一目标?
更新
遵循下面 Marco Sandri 的建议并稍作调整。我想出了这段代码来完成这项工作:
phtmap <- pheatmap::pheatmap(mtcars)
col_dend <- phtmap[[2]]
col_dend <- dendextend::rotate(col_dend, order = c("hp", "disp", "vs", "am", "cyl", "drat", "gear", "carb","wt", "mpg","qsec") )
pheatmap(mtcars, cluster_cols=as.hclust(col_dend))
Run Code Online (Sandbox Code Playgroud) 我有一个算法可以将数据分组到一个分层的集群树.该算法是Toby Seagram的编程集体智能中描述的算法.树输出是一个二叉树,每个节点都有一个"距离"值,告诉你两个子节点之间的距离.
然后,我可以将其显示为树状图,这使得人体点很容易将值组合在一起.但是我很难想出一个能够自动决定组应该是什么的算法.我希望能够自动确定:
这有标准算法吗?
我正在使用R中heatmap.2的gplots包中的函数可视化数据集.基本上我正在对原始数据执行层次聚类分析,同时强制热图显示有限版本的数据(在-3和+3之间)限制异常值对热图外观的影响,同时仍保留原始聚类.当我使用完整数据集(fullmousedatamat)时,它工作得很好.但是,当我使用部分数据集(partialmousedatamat),并希望使用与完整数据集相同的键绘制它时,从键中删除了几种颜色,我无法弄清楚原因.
以下是包含相关数据集和分析的要点:
https://gist.github.com/jeffbruce/7412f567ac57fe1721a3
注意中心白色两侧的第4种颜色是如何掉落的.这对我来说可能是个错误.我收到以下警告信息,我不确定如何解释:
Warning message:
In image.default(z = matrix(z, ncol = 1), col = col, breaks = tmpbreaks, :
unsorted 'breaks' will be sorted before use
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
我有一个 3 维空间中包含大约 2000 万个点 (x,y,z) 的大型数据集。我知道这些点组织在密集区域中,但这些区域的大小各不相同。我认为标准的无监督 3D 聚类应该可以解决我的问题。
由于我无法先验估计簇的数量,因此我尝试使用 k 范围较宽的 k 均值,但速度很慢,而且我必须估计每个 k 分区的重要性。基本上,我的问题是:如何将点中最重要的部分提取到簇中?
我正在使用进行分层聚类分析 hclust()
代码如下所示:
hc <- hclust(dist(USArrests), "ave")
Run Code Online (Sandbox Code Playgroud)
现在,我需要的是获得一个表(或类似的东西),其中包含所有集群和属于它们的观察结果(通过它们的rowname,非数字),以便我可以将其保存到某些整体文件/数据框 - 例如Excel.(我想用不同的方法运行hclust几次,变量并最终评估结果.)
我现在,它可能很容易,但我被卡住了......你有什么建议吗?
Ps.:我也想知道它在使用时是如何工作的 kmeans()
我有一个 300x2 的数据矩阵,即 2 个变量的 300 个观察值。使用 R 中的 kmeans 函数,我可以按以下方式绘制生成的聚类:
data <- scale(data)
fit.kmeans <- kmeans(data, 3)
plot(data, col = fit.kmeans$cluster)
Run Code Online (Sandbox Code Playgroud)
这给出了原始数据的漂亮二维图,按簇着色。有没有使用 hclust 函数执行相同操作的简单方法?或者,是否有另一个函数可以让我实现不同的聚类方法并随后绘制结果聚类?提前致谢。
我试图将聚集聚类与自定义距离度量(即亲和力)一起使用,因为我想通过序列相似性而不是无意义的欧几里德距离对整数序列进行聚类。
我的数据看起来像这样
>> dat.values
array([[860, 261, 240, ..., 300, 241, 1],
[860, 840, 860, ..., 860, 240, 1],
[260, 860, 260, ..., 260, 220, 1],
...,
[260, 260, 260, ..., 260, 260, 1],
[260, 860, 260, ..., 840, 860, 1],
[280, 240, 241, ..., 240, 260, 1]])
Run Code Online (Sandbox Code Playgroud)
我创建了以下相似性函数
def sim(x, y):
return np.sum(np.equal(np.array(x), np.array(y)))/len(x)
Run Code Online (Sandbox Code Playgroud)
所以我只用numpy返回两个序列中的%匹配值,然后进行以下调用
cluster = AgglomerativeClustering(n_clusters=5, affinity=sim, linkage='average')
cluster.fit(dat.values)
Run Code Online (Sandbox Code Playgroud)
但我说错了
TypeError: sim() missing 1 required positional argument: 'y'
Run Code Online (Sandbox Code Playgroud)
我不确定为什么会收到此错误;我以为该函数将群集成对的行,因此将传递每个必需的参数。
任何帮助,将不胜感激
我试图理解这个算法,但无法获得适当的文档和解释.有人可以帮我理解这种聚类算法.
algorithm cluster-analysis hierarchical-clustering data-mining
我想使用 scipy 的树状图。我有以下数据:
我有一个包含七种不同方式的列表。例如:
Y = [71.407452200146807, 0, 33.700136456196823, 1112.3757110973756, 31.594949722819372, 34.823881975554166, 28.36368420190157]
Run Code Online (Sandbox Code Playgroud)
每个平均值是为不同的用户计算的。例如:
X = ["user1", "user2", "user3", "user4", "user5", "user6", "user7"]
Run Code Online (Sandbox Code Playgroud)
我的目标是在树状图的帮助下显示上述数据。
我尝试了以下方法:
Y = [71.407452200146807, 0, 33.700136456196823, 1112.3757110973756, 31.594949722819372, 34.823881975554166, 28.36368420190157]
X = ["user1", "user2", "user3", "user4", "user5", "user6", "user7"]
# Attempt with matrix
#X = np.concatenate((X, Y),)
#Z = linkage(X)
Z = linkage(Y)
# Plot the dendogram with the results above
dendrogram(Z, leaf_rotation=45., leaf_font_size=12. , show_contracted=True)
plt.style.use("seaborn-whitegrid")
plt.title("Dendogram to find clusters")
plt.ylabel("Distance")
plt.show()
Run Code Online (Sandbox Code Playgroud)
但它说:
ValueError:压缩距离矩阵 'y' …
我正在处理一群患者的肿瘤图像表达数据,对于每个患者,我都有一个提取的肿瘤图像特征的列表。我使用层次聚合聚类对患者和特征进行了聚类,并使用Seaborn 的 .clustermap对其进行了绘制。这是我到目前为止所拥有的:

现在,每个患者都有一堆与之相关的分类信息,这些是癌症亚型(A、B、C、D)、T 分期(1、2、3、4)、N 分期(0、1、2、3) )、M stage(0,1) 以及它们所属的 HAC(1,2,3,...) 集群。此外,每个图像特征也属于不同的类别。我想在每个轴上显示这个分类信息(我知道 {row, col}_colors。本质上我正在尝试重新创建下面的图,我想知道在 Python 中使用 matplotlib/seaborn 是否可以实现这一点。

另外,你认为这个图的作者是在 2014 年用什么来生成它的。R?
我的代码带有一些随机数据:
# Random dummy data
np_zfeatures = np.random.random((420, 1218)) # example matrix of z-scored features [patients, features]
patient_T_stage = np.random.randint(low=1, high=5, size=(420,))
patient_N_stage = np.random.randint(low=0, high=4, size=(420,))
patient_M_stage = np.random.randint(low=0, high=2, size=(420,))
patient_O_stage = np.random.randint(low=0, high=5, size=(420,))
patient_subtype = np.random.randint(low=0, high=5, size=(420,))
feature_class = np.random.randint(low=0, high=5, size=(1218,)) # There's 5 categories of features (first order, shape, …Run Code Online (Sandbox Code Playgroud) 我想抓住印度新闻网站及其档案(例如thehindu.com,indianexpress.com和timesofindia.com).
我听说Java中的样板库用于提取内容.但是python中是否有任何库可以执行此操作以及如何执行此操作?
如果这是一个重复的问题,请帮我指出.
r ×6
python ×4
scikit-learn ×2
algorithm ×1
data-mining ×1
dendrogram ×1
gplots ×1
hclust ×1
heatmap ×1
k-means ×1
legend ×1
matplotlib ×1
pheatmap ×1
plot ×1
python-3.x ×1
scipy ×1
seaborn ×1
spatial ×1
web ×1
web-crawler ×1