聚类算法是一种常见的无监督学习方法,用于将一组数据对象划分为若干个相似的组(或簇)。它在数据挖掘、图像处理、自然语言处理等领域中被广泛应用。本文将详细介绍几种常见的聚类算法,并提供相应的示例代码。
一、K-means算法
K-means算法是一种迭代优化的聚类算法,其基本思想是将数据集划分为K个簇,使得同一簇内的数据对象相似度较高,不同簇之间的相似度较低。算法步骤如下:
- 随机选择K个初始聚类中心;
- 根据欧氏距离计算每个数据对象与聚类中心的距离,将其归到最近的簇;
- 更新每个簇的聚类中心,即将簇内所有数据对象的均值作为新的聚类中心;
- 重复步骤2和步骤3,直到聚类中心不再变化或达到最大迭代次数。
示例代码如下所示:
from sklearn.cluster import KMeans
# 创建KMeans模型
kmeans = KMeans(n_clusters=3