AgglomerativeClustering画层次聚类树状图
时间: 2023-10-24 17:16:22 浏览: 153
要画层次聚类的树状图,可以使用 `scipy` 库中的 `dendrogram` 函数。
首先,使用 `AgglomerativeClustering` 进行聚类:
```python
from sklearn.cluster import AgglomerativeClustering
from sklearn.datasets import make_blobs
# 生成随机数据
X, y = make_blobs(n_samples=50, centers=5, random_state=42)
# 聚类
clustering = AgglomerativeClustering(n_clusters=None, distance_threshold=0).fit(X)
```
其中,`n_clusters=None` 表示不限制聚类的个数,`distance_threshold=0` 表示距离的阈值为0,即全部连接在一起。
然后,使用 `dendrogram` 函数画出树状图:
```python
from scipy.cluster.hierarchy import dendrogram
import matplotlib.pyplot as plt
# 画出树状图
plt.figure(figsize=(10, 5))
dendrogram(clustering.linkage_, labels=y)
plt.show()
```
其中,`clustering.linkage_` 是 `AgglomerativeClustering` 的属性,表示聚类的链接矩阵。
运行以上代码,即可得到层次聚类的树状图。
阅读全文