层次聚类算法实现及树状图绘制 - Python 示例

本示例代码演示了如何使用 Python 的 scipy 库进行层次聚类,并绘制树状图来可视化聚类结果。

1. 导入必要的库

import numpy as np
import matplotlib.pyplot as plt
from scipy.cluster.hierarchy import dendrogram, linkage

2. 生成随机数据

# 生成随机数据
np.random.seed(0)
X = np.random.random((10, 2)) #生成10个随机二维数据点

3. 进行层次聚类

# 层次聚类
Z = linkage(X, 'ward')
  • 使用 linkage 函数进行层次聚类,X 为数据,'ward' 指定使用 Ward 方法进行聚类。

4. 绘制树状图

# 绘制树状图
fig, ax = plt.subplots(figsize=(10, 5))
dendrogram(Z)
plt.show()
  • 使用 subplots 函数创建画布,figsize 指定画布大小为 (10, 5)。
  • 使用 dendrogram 函数绘制树状图,Z 为聚类结果。

运行结果

程序运行后,将生成随机数据点,进行层次聚类,并绘制出对应的树状图,展示不同数据点之间的聚类关系。

程序设计思路

  1. 导入必要的库:numpy 用于数值计算,matplotlib.pyplot 用于绘图,scipy.cluster.hierarchy 提供层次聚类和树状图绘制功能。
  2. 生成随机数据:使用 np.random.random 生成随机二维数据点。
  3. 进行层次聚类:使用 linkage 函数进行层次聚类,指定聚类算法为 Ward 方法。
  4. 绘制树状图:使用 dendrogram 函数绘制树状图,并将聚类结果 Z 传入。
  5. 显示图像:使用 plt.show 显示绘制的树状图。

通过以上步骤,可以实现层次聚类并可视化聚类结果。

层次聚类算法实现及树状图绘制 - Python 示例

原文地址: https://www.cveoy.top/t/topic/jFTR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录