写层次聚类后每个簇样本数的柱状图的代码
时间: 2024-05-06 19:16:39 浏览: 81
以下是一个使用scikit-learn库完成层次聚类并绘制每个簇样本数柱状图的示例代码:
```python
from sklearn.cluster import AgglomerativeClustering
import numpy as np
import matplotlib.pyplot as plt
# 生成随机数据
X = np.random.rand(100, 2)
# 进行层次聚类
cluster = AgglomerativeClustering(n_clusters=None, affinity='euclidean', linkage='ward', distance_threshold=0.3)
cluster.fit(X)
# 统计每个簇的样本数
cluster_labels, cluster_counts = np.unique(cluster.labels_, return_counts=True)
# 绘制柱状图
plt.bar(cluster_labels, cluster_counts)
plt.xlabel('Cluster Label')
plt.ylabel('Number of Samples')
plt.show()
```
在上面的示例代码中,我们首先生成了一个包含100个样本的随机数据集。然后使用`AgglomerativeClustering`类进行层次聚类,并设置参数`n_clusters=None`表示不指定聚类簇的数量,而是根据`distance_threshold`参数指定的距离阈值进行聚类。在本例中,我们将距离阈值设为0.3。聚类完成后,我们使用`np.unique`函数计算出每个簇的样本数,并使用`plt.bar`函数绘制柱状图。最后调用`plt.show()`函数显示图形。
阅读全文