k-means算法是非监督聚类最常用的一种方法,因其算法简单和很好的适用于大样本数据,广泛应用于不同领域,本文详细总结了k-means聚类算法原理 。
目录
1. k-means聚类算法原理
2. k-means聚类算法步骤
3. k-means++聚类优化算法
4. 小批量处理的k-means聚类算法
5. k值的选取
6. k-means聚类算法不适用的几个场景
7. k-means与knn区别
8. 小结
1. k-means聚类算法原理聚类算法性能度量的文章提到若簇类相似度好簇间的相似度差,则聚类算法的性能较好。我们基于此定义k-means聚类算法的目标函数:
其中表示当样本
划分为簇类k时为1,否则为0。
表示簇类k的均值向量。
目标函数(1.1)在一定程度上刻画了簇内样本围绕簇均值向量的紧密程度,J值越小则簇内样本相似度越高。最小化目标函数是一个NP难题,k-means聚类运用EM算法思想实现模型的最优化。
1)初始化K个簇的均值向量,即是常数,求J最小化时的
。我们不难知道当数据点划分到离该数据点最近的簇类时,目标函数J取最小。
2)已知,求最小化J时相应的
。令目标函数J对
的偏导数等于0:
得:
表达式的含义是簇类中心等于所属簇类样本的均值。
本节用EM算法思想解释了k-means聚类算法的参数更新过程,相信大家对k-means聚类算法有一个更清晰的认识。
2. k-means聚类算法步骤k-means聚类算法步骤实质是EM算法的模型优化过程,具体步骤如下:
1)随机选择k个样本作为初始簇类的均值向量;
2)将每个样本数据集划分离它距离最近的簇;
3)根据每个样本所属的簇,更新簇类的均值向量;
4)重复(2)(3)步,当达到设置的迭代次数或簇类的均值