K-means聚类算法是一种常用的无监督学习算法,用于将给定的数据集划分为不同的群组。它基于数据点之间的相似性,将数据点聚集在具有相似特征的簇中。本文将详细介绍K-means聚类算法的原理和实现,并提供相应的源代码。
算法原理:
- 初始化:根据指定的簇数K,随机选择K个数据点作为初始的聚类中心。
- 聚类分配:对于每个数据点,计算其与各个聚类中心的距离,并将其分配给距离最近的聚类中心所在的簇。
- 更新聚类中心:对于每个簇,计算其所有数据点的平均值,将该平均值作为新的聚类中心。
- 重复步骤2和步骤3,直到聚类中心不再发生变化或达到最大迭代次数。
源代码实现:
下面是用Python实现K-means聚类算法的示例代码:
import numpy as np
def kmeans(X, K