【发布时间】:2020-10-17 16:00:13
【问题描述】:
我有一个包含项目列表和相关值的数据框。哪种指标和方法最适合执行聚类?
-
我想仅基于行从列表中创建一个seaborn clustermap(树状图加热图),映射它(如图所示是代码),但是我怎样才能获得每个集群的项目列表或每个蛋白质及其簇信息。 (类似于Extract rows of clusters in hierarchical clustering using seaborn clustermap,但仅基于行而不是列)
-
如何确定哪种“方法”和“指标”最适合我的数据?
data.csv 示例:
item,v1,v2,v3,v4,v5
A1,1,2,3,4,5
B1,2,4,6,8,10
C1,3,6,9,12,15
A1,2,3,4,5,6
B2,3,5,7,9,11
C2,4,7,10,13,16
我创建集群图的代码:
import pandas as pd
from scipy.cluster.hierarchy import linkage, dendrogram, fcluster
import matplotlib.pyplot as plt
import seaborn as sns
import scipy.cluster.hierarchy as sch
df = pd.read_csv('data.csv', index_col=0)
sns.clustermap(df, col_cluster=False, cmap="coolwarm", method='ward', metric='euclidean', figsize=(40,40))
plt.savefig('plot.pdf', dpi=300)
【问题讨论】:
-
感谢您编辑问题
-
集群是无监督的,这意味着有一些指标可以告诉你集群是否稳定或解释更多的差异,但最终,它是相当主观的。这取决于您的最终目标,您自己必须清楚这一点。您可以尝试不同的层次聚类方法,并使用 clustermap 中的
row_linkage=选项提供链接。 -
@StupidWolf 非常感谢,有什么方法可以检查哪种方法对我们的数据最有效(一种验证)。
标签: python seaborn cluster-analysis