用python实现层次聚类
时间: 2023-09-25 10:11:29 浏览: 83
层次聚类是一种无监督学习的聚类方法,其基本思想是将样本逐渐合并成越来越大的类群,直到所有样本都被合并为止。常见的层次聚类方法有凝聚层次聚类和分裂层次聚类,其中凝聚层次聚类是将每个样本视为一个初始类,然后逐步将相似度最高的类合并成更大的类群,最终形成一个完整的聚类树。
下面是一个基于Python的凝聚层次聚类实现,使用的是scikit-learn库中的AgglomerativeClustering类:
```python
import numpy as np
from sklearn.cluster import AgglomerativeClustering
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt
# 生成随机数据集
X, y = make_blobs(n_samples=50, centers=3, random_state=42)
# 构建模型
model = AgglomerativeClustering(n_clusters=3)
# 拟合模型
y_pred = model.fit_predict(X)
# 可视化结果
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.title("Agglomerative Clustering")
plt.show()
```
上述代码中,我们首先生成一个随机数据集,然后使用AgglomerativeClustering类构建层次聚类模型,设置聚类数目为3,最后拟合模型并可视化聚类结果。
阅读全文