K均值聚类是一种无监督学习的算法,用于将数据集划分为K个不同的簇,每个簇内的数据点彼此相似
该算法原理的基本步骤:
- 选择簇的数量K。
- 随机选择K个数据点作为初始簇中心。
- 对于数据集中的每个数据点,计算其与每个簇中心的距离,分配数据点到最近的簇中。
- 对每个簇,计算其所有数据点的均值,将这个值作为新的簇中心。
- 然后重复步骤3和4,直到簇中心不再发生显著变化,或达到预定的迭代次数。
- 最终簇中心的位置定义了数据集的最终簇划分。
K均值算法的目标是最小化簇内的点与簇中心之间的平方距离和。
缺点:
- 对初始数据值和异常值敏感,都可能会影响聚类的结果
- 只适用于凸形簇,对于非凸形簇效果不佳
- K均值对尺寸和密度差异较大的簇表现不好
优点:
- 简单且高效
- 易于解释
- 对于大规模数据集,可伸缩性好,因为它的计算复杂性随着数据点数量线性增长
- 适用于初始簇中心的随机选择