K-means算法
算法思想
首先从N个数据对象中任意选择K个对象作为初始聚类中心,对于所剩下的其它对象则根据它们与这些聚类中心的相似度(用距离来衡量),分别将它们分配给与其最相似的聚类中心所代表的聚类,然后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值),不断重复这个过程直到标准测试函数开始收敛为止。测试函数一般采用均方差作为标准测度函数。K个聚类具有以下特点:各个聚类本身尽可能的紧凑,而各个聚类之间尽可能的分开。
算法分析
K-means算法是一种基于样本间相似性度量的间接聚类方法,属于非监督学习方法。由于K-means算法易于描述而且时间效率高,很适合处理大规模数据,已经被应用到自然语言处理等多个领域。在文本聚类领域,K-means算法已经成为基本的算法。但随着算法的深入,该算法的一些不足也暴露出来。主要有:需要预告确定K值,会受到初始聚类中心影响,难以处理分类属性数据以及容易收敛于局部最优解等。
K-means算法的优化分析
1、基于收敛条件的优化
因为K-means算法的收敛条件是通过不断迭代与重新计算聚类中心直至中心收敛,这就有可能导致在这个聚类的内部是已经达到一个很紧密的效果,但是各个聚类间的距离并没有考虑进来,而根据聚类算法的基本思想,聚类算法应该使聚簇内相似度尽可能大,而聚簇间相似度尽可能小的基本原则,所以聚类函数应该综合考虑类内距离与类间距离。为此,产生了改进的K-means算法。在大多数改进算法中都是采用类内紧密性与类间分散性的比值作为收敛函数,这样当收敛函数达到最小值时&#