层次聚类算法实现及树状图绘制 - Python 示例
层次聚类算法实现及树状图绘制 - 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为聚类结果。
运行结果
程序运行后,将生成随机数据点,进行层次聚类,并绘制出对应的树状图,展示不同数据点之间的聚类关系。
程序设计思路
- 导入必要的库:
numpy用于数值计算,matplotlib.pyplot用于绘图,scipy.cluster.hierarchy提供层次聚类和树状图绘制功能。 - 生成随机数据:使用
np.random.random生成随机二维数据点。 - 进行层次聚类:使用
linkage函数进行层次聚类,指定聚类算法为 Ward 方法。 - 绘制树状图:使用
dendrogram函数绘制树状图,并将聚类结果Z传入。 - 显示图像:使用
plt.show显示绘制的树状图。
通过以上步骤,可以实现层次聚类并可视化聚类结果。
原文地址: https://www.cveoy.top/t/topic/jFTR 著作权归作者所有。请勿转载和采集!