k-means算法是一种基于划分的聚类算法,以距离作为数据对象间相似性度量的标准,即数据对象间的距离越小,则它们的相似性越高,则它们越有可能在同一个类簇。数据对象间距离的计算有很多种,k-means算法通常采用欧氏距离来计算数据对象间的距离。
(1)计算数据对象的距离
k-means通常采用欧氏距离来计算数据对象间的距离。下面给出欧式距离的计算公式:
(2)聚类过程中,每次迭代,对应的类簇中心需要重新计算(更新):对应类簇中所有数据对象的均值,即为更新后该类簇的类簇中心。定义第k个类簇的类簇中心为Centerk,则类簇中心更新方式如下:
其中,Ck表示第k个类簇,|Ck|表示第k个类簇中数据对象的个数,这里的求和是指类簇Ck中所有元素在每列属性上的和,因此Centerk也是一个含有D个属性的向量,表示为Centerk=(Centerk,1,Centerk,2,...,Centerk,D)。
k-means算法思想可描述为ÿ