一、K-Means算法简介
聚类是一个将数据集中在某些方面相似的数据成员进行分类组织的过程,聚类就是一种发现这种内在结构的技术,聚类技术属于机器学习中的无监督学习。k-means聚类是最著名的划分聚类算法,由于简洁和效率使得他成为所有聚类算法中最广泛使用的。给定一个数据点集合和需要的聚类数目k,k由用户指定,k均值算法根据某个距离函数反复把数据分入k个聚类中。
二、算法基本思想
k-means算法比较简单。在k-means算法中,用cluster来表示簇;容易证明k-means算法收敛等同于所有质心不再发生变化。基本的k-means算法流程如下:
- 选取k个初始质心(作为初始cluster,每个初始cluster只包含一个点);
- repeat:
- 对每个样本点,计算得到距离最近的质心,将其类别标为该质心所对应的cluster;
- 重新计算k个cluster个对应的质心(质心是cluster样本点的均值);
- until 质心不再发生改变;
k-means的目标函数:
K-measn的目标是最小化畸变(样本点与簇中心的距离之和):
S表示