请给一个AgglomerativeClustering的例子
时间: 2023-10-24 20:20:07 浏览: 40
以下是一个使用AgglomerativeClustering进行聚类的简单例子:
```python
from sklearn.datasets import make_blobs
from sklearn.cluster import AgglomerativeClustering
import matplotlib.pyplot as plt
# 生成模拟数据
X, y = make_blobs(n_samples=300, centers=4, random_state=0)
# 使用AgglomerativeClustering进行聚类
clustering = AgglomerativeClustering(n_clusters=4).fit(X)
# 绘制聚类结果
plt.scatter(X[:, 0], X[:, 1], c=clustering.labels_, cmap='rainbow')
plt.show()
```
在这个例子中,我们首先使用`make_blobs`函数生成了一个包含300个样本和4个中心的模拟数据集。然后,我们使用`AgglomerativeClustering`对这些样本进行聚类,并将聚类结果可视化。
运行代码后,我们可以看到一个由4个不同颜色的点簇组成的散点图,每个点簇代表一个聚类。由于我们指定了聚类数量为4,因此算法成功地将数据集分成了4个聚类。
相关问题
AgglomerativeClustering画层次聚类树状图
要画出 Agglomerative Clustering 的层次聚类树状图,需要使用 Python 中的 `scipy` 库。以下是一个简单的例子:
```python
from scipy.cluster.hierarchy import dendrogram, linkage
import matplotlib.pyplot as plt
# 生成一些随机数据
X = [[1, 2], [1, 4], [1, 0], [4, 2], [4, 4], [4, 0]]
# 计算链接矩阵
Z = linkage(X, 'ward')
# 画出层次聚类树状图
fig = plt.figure(figsize=(5, 3), dpi=150)
dn = dendrogram(Z)
plt.show()
```
在这个例子中,我们使用 `linkage` 函数计算链接矩阵,然后使用 `dendrogram` 函数画出层次聚类树状图。`ward` 表示使用 ward 方法进行聚类。你可以根据自己的需求选择其他的聚类方法。
层次聚类分析例子(Python)
当然,我可以为您提供一个使用Python进行层次聚类分析的简单例子。在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
```
接下来,我们可以生成一些随机数据用于聚类分析。这里我们使用make_blobs函数生成具有3个聚类中心的随机数据:
```python
X, y = make_blobs(n_samples=50, centers=3, random_state=0, cluster_std=0.6)
```
然后,我们可以使用AgglomerativeClustering类来进行层次聚类分析。这里我们指定了聚类的数量为3,并使用ward链接作为聚类的准则:
```python
clustering = AgglomerativeClustering(n_clusters=3, linkage='ward')
clustering.fit(X)
```
最后,我们可以使用matplotlib库来可视化聚类结果:
```python
plt.scatter(X[:, 0], X[:, 1], c=clustering.labels_, cmap='rainbow')
plt.show()
```
这样,我们就完成了层次聚类分析的例子。希望对您有所帮助!