K-均值聚类算法是一种无监督机器学习算法,用于将数据集中的数据点分为 K 个簇(cluster)。K-均值聚类算法的基本思想是:首先随机选取 K 个点作为初始的聚类中心,将数据集中的每个点分配到距离其最近的聚类中心所对应的簇中;然后重新计算每个簇的聚类中心,再将数据集中的每个点重新分配到距离其最近的新的聚类中心所对应的簇中;如此往复迭代,直到簇不再发生变化或达到预设的最大迭代次数为止。
K-均值聚类算法的优点包括:
- 简单易用,实现较为容易;
- 适用于大规模数据集,时间复杂度为 O(nkt),其中 n 为数据点数目,k 为簇数,t 为迭代次数;
- 适用于簇形态相对简单的数据集,如球形或凸形簇。
K-均值聚类算法的缺点包括:
- 对于簇形状不规则、大小不等、样本分布不平衡的数据集,聚类效果较差;
- 对于初始聚类中心的选择比较敏感,不同的初始聚类中心很可能导致不同的聚类结果;
- 对于噪声数据点比较敏感,会将噪声数据点分配到某个簇中。