在Python中,常用的聚类方法主要包括K-Means聚类和层次聚类。以下是这两种方法的简要介绍:
K-Means聚类
概述:K-Means是一种迭代算法,用于将数据集划分为K个簇。算法通过计算数据点与簇中心(质心)的距离,并将数据点分配到最近的簇中心,然后迭代更新簇中心和数据点分配,直到满足收敛条件。
实现:在Python中,可以使用`sklearn.cluster.KMeans`类来实现K-Means算法。
示例代码:
```python
from sklearn.cluster import KMeans
初始化KMeans模型
kmeans = KMeans(n_clusters=3)
拟合数据
kmeans.fit(data)
获取聚类结果
labels = kmeans.labels_
centroids = kmeans.cluster_centers_
层次聚类
概述:层次聚类是一种无监督学习方法,通过计算点与点之间的相似性或距离,不断地合并最相似的点或群集,直到达到预设的簇数或满足某个终止条件。
方法:层次聚类分为凝聚(agglomerative)和分裂(divisive)两种方法。
实现:在Python中,可以使用`scipy.cluster.hierarchy`模块中的相关函数来实现层次聚类。
示例代码:
```python
from scipy.cluster.hierarchy import linkage, dendrogram
import numpy as np
生成示例数据
X = np.array([
[1, 1], [1, 9], [1, 2],
[10, 2], [10, 9], [10, 1],
[2, 2], [2, 9], [2, 1]
])
使用层次聚类方法进行聚类
Z = linkage(X, method='ward')
绘制树状图
dendrogram(Z)
以上是Python中常见的两种聚类方法的基本介绍和示例代码。您可以根据具体需求选择合适的算法进行数据聚类分析