当前位置:首页>python>python数据可视化技巧的100个练习 -- 25. 层次聚类树状图

python数据可视化技巧的100个练习 -- 25. 层次聚类树状图

  • 2026-10-11 05:37:47
python数据可视化技巧的100个练习 -- 25. 层次聚类树状图
重要性★★★★☆
难度★★★☆☆
一家营销公司希望基于各种特征了解不同产品类别之间的相似性。
他们有一个包含 10 种不同产品特征的数据集。
你的任务是对该数据集进行层次聚类,并绘制树状图以可视化聚类结果。
生成一个包含 10 种产品、每种产品有 4 个特征的随机数据集,并使用层次聚类创建树状图。

【数据生成代码示例】

import numpy as npnp.random.seed(42)data = np.random.rand(10, 4)labels = [f'Product {i}' for i in range(1, 11)]

【图表答案】

【代码答案】

import numpy as npimport matplotlib.pyplot as pltimport scipy.cluster.hierarchy as schnp.random.seed(42)data = np.random.rand(10, 4)labels = [f'Product {i}' for i in range(1, 11)]plt.figure(figsize=(10, 7))dendrogram = sch.dendrogram(sch.linkage(data, method='ward'), labels=labels)plt.title('层次聚类树状图')plt.xlabel('产品')plt.ylabel('欧几里得距离')plt.show()
层次聚类是一种聚类分析方法,旨在构建聚类的层次结构。
它特别适用于理解数据集的结构,并可视化不同数据点之间的关系。
在这个练习中,我们首先使用 NumPy 生成一个包含 10 种产品、每种产品有 4 个特征的随机数据集。
然后,我们使用 SciPy 库中的 linkage 函数进行层次聚类。
linkage 函数创建一个编码为链接矩阵的层次聚类。
我们使用 'ward' 方法,该方法最小化合并聚类的方差。
最后,我们使用 SciPy 中的 dendrogram 函数绘制树状图,以树的形式可视化层次聚类。
树状图的 x 轴代表产品,y 轴代表聚类之间的欧几里得距离。
这种可视化有助于了解哪些产品彼此更相似。

【小知识】

  • 层次聚类可以分为两大类:凝聚型和分裂型。
  • 本练习中使用的凝聚型聚类,从每个数据点作为一个单独的聚类开始,逐步合并最近的聚类对。
  • 分裂型聚类则相反,从整个数据集作为一个单独的聚类开始,将其拆分为更小的聚类。
  • 距离度量和链接方法(例如单链接、全链接、平均链接、ward)的选择可能会显著影响最终的树状图和聚类结果。

最新文章

随机文章