如何使用python对dataframe数据进行层次聚类并可视化
可以使用scipy库中的hierarchy模块来实现层次聚类。具体步骤如下:
- 导入需要的库
import pandas as pd
from scipy.cluster import hierarchy
import matplotlib.pyplot as plt
- 读取数据
df = pd.read_csv('data.csv', index_col=0)
- 计算距离矩阵
dist = hierarchy.distance.pdist(df)
- 对距离矩阵进行层次聚类
linkage = hierarchy.linkage(dist, method='ward')
其中,method参数表示使用的聚类方法,这里使用了Ward方法。
- 绘制聚类树状图
plt.figure(figsize=(10, 6))
hierarchy.dendrogram(linkage, labels=df.index, leaf_font_size=12)
plt.show()
其中,labels参数表示每个样本的标签,leaf_font_size参数表示叶节点的字体大小。
完整代码示例:
import pandas as pd
from scipy.cluster import hierarchy
import matplotlib.pyplot as plt
df = pd.read_csv('data.csv', index_col=0)
dist = hierarchy.distance.pdist(df)
linkage = hierarchy.linkage(dist, method='ward')
plt.figure(figsize=(10, 6))
hierarchy.dendrogram(linkage, labels=df.index, leaf_font_size=12)
plt.show()
注意:在绘制聚类树状图时,如果数据量较大,可能会出现树状图显示不完整的问题。可以通过调整图像大小或者增加字体大小等方式来解决此问题
原文地址: https://www.cveoy.top/t/topic/dhiW 著作权归作者所有。请勿转载和采集!