聚类算法是一种无监督的分类方法,即样本预先不知所属类别或标签,需要根据样本之间的距离或相似程度自动进行分类。聚类算法可以分为基于划分的方法、基于连通性的方法、基于密度的方法、基于概率分布模型的方法等,
K-means(K均值)属于基于划分的聚类方法。
一、基本原理
基于划分的聚类方法是将样本集组成的矢量空间划分为多个区域,每个区域都存在一个区域相关的表示,即区域中心。对于每个样本可以建立一种样本到区域中心的映射:
其中l()为指数函数。
根据建立的映射q(x),可以将相应的样本分类到相应的中心,得到最终的划分结果。
不同的基于划分的聚类算法的主要区别在于如何建立相应的映射方式q(x)。在经典的K-means聚类算法中,映射是通过样本与各中心的之间的距离平方和最小准则来确立的。
假设有样本集合, K-means聚类算法的目标是将数据集划分为k(k<n)类:S = {S1, S2, ..., SK},使划分后的K个子集合满足类内的距离平方和最小:
其中,
求解目标函数是一个NP-hard问题,无法保证得到一个稳定的全局最优解。在经典的聚类算法中,采取迭代优化策略,有效地求解目标函数的局部最优解。
算法步骤如下:
步骤1 初始化聚类中心,可选取样本集的前k个样本,或者随机选取k