sklearn.cluster 层次聚类
时间: 2023-09-29 07:02:48 浏览: 53
层次聚类是一种聚类方法,它将数据集中的对象逐步合并成越来越大的簇。在层次聚类中,每个对象都可以看作是一个簇,然后不断地合并相邻的簇,直到只剩下一个簇。
scikit-learn提供了一个层次聚类的模块sklearn.cluster。具体实现可以使用AgglomerativeClustering类。该类支持不同类型的链接方式(ward、complete、average、single)和不同类型的距离度量(euclidean、manhattan、cosine、precomputed等)。它还可以通过n_clusters参数控制聚类的数量。
以下是一个使用AgglomerativeClustering的例子:
```python
from sklearn.datasets import make_blobs
from sklearn.cluster import AgglomerativeClustering
import matplotlib.pyplot as plt
X, y = make_blobs(n_samples=50, centers=3, random_state=0)
plt.scatter(X[:, 0], X[:, 1], c=y, cmap='rainbow')
plt.show()
model = AgglomerativeClustering(n_clusters=3)
model.fit(X)
plt.scatter(X[:, 0], X[:, 1], c=model.labels_, cmap='rainbow')
plt.show()
```
在这个例子中,我们生成了一个包含50个样本和3个簇的数据集。我们首先使用plt.scatter函数可视化数据集。然后,我们使用AgglomerativeClustering类将数据集聚类成3个簇,并使用plt.scatter函数可视化聚类结果。