http://blog.csdn.net/kingskyleader/article/details/6064838
以下摘自原文:
介绍k-means算法
把数据分成几组,按照定义的测量标准,同组内数据与其他组数据相比具有较强的相似性,这就叫聚簇[4]。聚簇是数据挖掘最基础的操作,但现在存在的一些传统聚簇方法已不能满足处理复杂类型的、高维的、任意分布形状的数据集合的需要。
k-means 算法就是用得最多的一种传统的聚簇方法,是一种划分法,相似度的计算是求数据对象与簇中心的距离,与簇中心距离近的就划为一个簇。其工作 流程如下:
把数据分成几组,按照定义的测量标准,同组内数据与其他组数据相比具有较强的相似性,这就叫聚簇[4]。聚簇是数据挖掘最基础的操作,但现在存在的一些传统聚簇方法已不能满足处理复杂类型的、高维的、任意分布形状的数据集合的需要。
k-means 算法就是用得最多的一种传统的聚簇方法,是一种划分法,相似度的计算是求数据对象与簇中心的距离,与簇中心距离近的就划为一个簇。其工作 流程如下:
首先,随机地选择k个对象,每个对象初始地代表了一个簇的平均值或中心。对剩余的每个对象,根据其与各个簇中心的距离,将其赋给最近的簇。然后 重新计算每个簇的平均值,求出新的簇中心,再重新聚簇。这个过程不断重复,直到准则函数收敛。该算法的时间复杂度是O(nkt),其中n是所有对象数目, k是簇的数目,t是迭代次数。它的效率比较高;缺点是只能处理数值型数据,不能处理分类数据,对例外数据非常敏感,不能处理非凸面形状的聚簇。