python AGNES算法 树状图
时间: 2023-07-25 20:33:20 浏览: 69
AGNES算法(Agglomerative Nesting)是一种聚类算法,它的基本思想是将每个样本看作一个初始的簇,然后逐步合并相邻的簇,直到满足某个停止条件为止。这个过程中产生的合并过程可以用树状图(dendrogram)来表示。
下面是用Python实现AGNES算法并绘制树状图的示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy.cluster.hierarchy import dendrogram, linkage
# 生成样本数据
X = np.random.rand(10, 2)
# 计算距离矩阵
dist_matrix = np.zeros((10, 10))
for i in range(10):
for j in range(i+1, 10):
dist_matrix[i, j] = np.sqrt(np.sum((X[i]-X[j])**2))
dist_matrix[j, i] = dist_matrix[i, j]
# AGNES算法
Z = linkage(dist_matrix, method='complete') # linkage函数计算距离矩阵的层次聚类结果
# 绘制树状图
fig, ax = plt.subplots(figsize=(8, 6))
dendrogram(Z)
plt.show()
```
运行以上代码,将会得到一个包含10个样本的树状图。其中,横轴表示样本编号,纵轴表示距离,每个垂直线段表示一个簇,垂直线段的长度表示簇之间的距离。