python的两种聚类方法及其所用函数
Python中有两种常见的聚类方法:K-Means聚类和层次聚类。
K-Means聚类是一种有监督学习算法,用于将数据集分为K个簇。它使用距离度量来将数据点分配到最近的簇中心,并不断迭代更新簇中心和数据点分配,直到收敛。
K-Means聚类的函数是`sklearn.cluster.KMeans`。
示例代码:
```python
from sklearn.cluster import KMeans
import numpy as np
# 生成随机数据集
X = np.random.rand(100, 2)
# 创建KMeans对象,指定簇数K=3
kmeans = KMeans(n_clusters=3)
# 训练模型,并进行聚类
kmeans.fit(X)
# 获取聚类结果
labels = kmeans.labels_
centers = kmeans.cluster_centers_
```
层次聚类是一种无监督学习算法,用于将数据集分层为多个簇。它使用距离度量来将数据点分配到最近的簇,并不断迭代合并簇,直到所有数据点都被分配到同一个簇中。
层次聚类的函数是`scipy.cluster.hierarchy.linkage`和`scipy.cluster.hierarchy.dendrogram`。
示例代码:
```python
from scipy.cluster.hierarchy import linkage, dendrogram
import numpy as np
# 生成随机数据集
X = np.random.rand(100, 2)
# 创建linkage对象,指定距离度量方式为欧几里得距离,并指定簇数K=3
Z = linkage(X, 'single', 'complete')
# 创建dendrogram对象,绘制层次聚类结果
dendrogram(Z)
```



还没有评论,来说两句吧...