python进行系统聚类
时间: 2023-12-18 17:04:40 浏览: 66
聚类python
在Python中进行系统聚类可以使用`scipy`库中的`hierarchy`模块。下面是一个简单的例子:
```python
import numpy as np
from scipy.cluster import hierarchy
from matplotlib import pyplot as plt
# 生成随机数据,10个样本,每个样本5个特征
np.random.seed(1)
X = np.random.random((10, 5))
# 进行层次聚类
Z = hierarchy.linkage(X, method='ward')
# 绘制聚类树
plt.figure()
dn = hierarchy.dendrogram(Z)
plt.show()
```
在这个例子中,我们首先生成了一个随机数据矩阵`X`,其中有10个样本,每个样本有5个特征。然后,我们使用`hierarchy.linkage`函数进行层次聚类,其中参数`method='ward'`表示使用Ward方差最小化算法进行聚类。最后,我们使用`hierarchy.dendrogram`函数绘制聚类树。
绘制结果如下图所示:
![dendrogram](https://img-blog.csdn.net/20180828193225112?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3B1dHJhc2g=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/70)
在聚类树中,每个叶子节点代表一个样本,每个中间节点代表一个聚类。节点的高度表示聚类之间的距离,越高表示距离越远,聚类之间的相似度越低。通过这个聚类树,我们可以选择一个合适的阈值,将聚类结果划分为不同的簇。
阅读全文