K-Means聚类算法是一种常用的无监督学习算法,用于将数据集分成不同的类别或簇。它是基于距离的聚类方法,通过迭代的方式将数据点分配到K个簇中,使得同一簇内的数据点彼此相似度较高,不同簇之间的相似度较低。
算法原理:
- 初始化:选择K个初始聚类中心,可以是随机选择或者通过其他启发式方法选择。
- 分配数据点:对于每个数据点,计算其与每个聚类中心的距离,并将其分配给距离最近的聚类中心所属的簇。
- 更新聚类中心:对于每个簇,计算其所有成员数据点的平均值,将该平均值作为新的聚类中心。
- 重复步骤2和步骤3,直到聚类中心不再发生变化或达到最大迭代次数。
下面是一个简单的Python实现K-Means聚类算法的示例代码:
import numpy as np
def kmeans(X, K