Python 层次聚类算法实现及树状图绘制
以下是层次聚类算法的 Python 程序,使用 matplotlib 绘制聚类结果的树状图:
import numpy as np
import matplotlib.pyplot as plt
from scipy.cluster.hierarchy import dendrogram, linkage
# 生成随机数据
np.random.seed(0)
X = np.random.random((10, 2))
# 层次聚类
Z = linkage(X, 'ward')
# 绘制树状图
fig, ax = plt.subplots(figsize=(10, 5))
dendrogram(Z)
plt.show()
解释程序:
- 导入必要的库:numpy、matplotlib 和 scipy.cluster.hierarchy。
- 生成 10 个随机二维数据点。
- 使用 ward 方法进行层次聚类,得到聚类结果的 Z 矩阵。
- 绘制树状图,其中 dendrogram 函数用于绘制树状图,fig 和 ax 变量用于设置图形大小和坐标轴,plt.show() 用于显示图形。
运行程序后,将会显示聚类结果的树状图。树状图的横轴表示数据点,纵轴表示聚类距离。可以根据聚类距离的大小,将树状图切割成若干个聚类簇。
原文地址: https://www.cveoy.top/t/topic/jtDP 著作权归作者所有。请勿转载和采集!