python实现层次聚类
时间: 2023-07-07 22:20:38 浏览: 92
好的,下面是使用Python实现层次聚类的代码示例:
```python
from scipy.cluster.hierarchy import dendrogram, linkage
import numpy as np
import matplotlib.pyplot as plt
# 生成随机数据
np.random.seed(4711)
a = np.random.multivariate_normal([10, 0], [[3, 1], [1, 4]], size=[100,])
b = np.random.multivariate_normal([0, 20], [[3, 1], [1, 4]], size=[50,])
X = np.concatenate((a, b),)
# 层次聚类
Z = linkage(X, 'ward')
# 绘制树状图
plt.figure(figsize=(25, 10))
plt.title('Hierarchical Clustering Dendrogram')
plt.xlabel('sample index')
plt.ylabel('distance')
dendrogram(Z, leaf_rotation=90., leaf_font_size=8.)
plt.show()
```
其中,我们使用`scipy`库的`linkage`函数进行层次聚类,`dendrogram`函数用于绘制树状图。在这个例子中,我们生成了两组随机数据,并将它们合并成一个数据集`X`,然后使用`ward`方法进行层次聚类。最后,我们绘制了层次聚类的树状图。
需要注意的是,聚类的结果可能会因为不同的参数和方法而产生差异,具体的选择需要根据实际问题来确定。
阅读全文