分层聚类算法python
时间: 2023-06-03 14:04:09 浏览: 96
层次聚类算法
可以使用scikit-learn包中的cluster模块来实现分层聚类算法。在其中,AgglomerativeClustering类可以进行层次聚类,它可以通过参数来选择聚类的方法(如ward、complete、average等)、聚类的距离度量(如欧几里得距离、曼哈顿距离等)和聚类的数量等。示例代码如下:
```
from sklearn.cluster import AgglomerativeClustering
import numpy as np
# 构造数据,共有3个类别,每个类别有4个样本,每个样本有2个特征
X = np.array([[1, 2], [1, 4], [1, 0],
[4, 2], [4, 4], [4, 0],
[7, 2], [7, 4], [7, 0]])
# 构造层次聚类对象,聚成3个类别
clustering = AgglomerativeClustering(n_clusters=3)
# 进行聚类
labels = clustering.fit_predict(X)
# 输出聚类结果
print(labels)
```
该代码将数据分成了3个类别,输出结果为[2 2 2 1 1 1 0 0 0],表示第1、2、3个样本被分到了类别2,第4、5、6个样本被分到了类别1,第7、8、9个样本被分到了类别0。
阅读全文