k-means

        K-means算法是很典型的基于划分的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似性就越大。该类算法认
为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。算法的目标是根据输入的参数k,将数据划分为k个簇。该聚类方法用到的数
学思想很简单,但聚类的效果很好。

        算法首先随机选取k个点作为初始聚类中心,然后计算各个样本到聚类中心的距离,把样本归到离它最近的那个聚类中心所在的类;对调整后的新
类计算新的聚类中心,如果相邻两次的聚类中心没有任何变化,说明样本调整结束,聚类准则函数Jc已经收敛。

        K-means聚类算法中“k”的含义是需要聚类的类别数量,其值由分析者自己指定或者由数据本身结构来决定。在实际分析中,往往需要研究者根据
问题,反复尝试把数据分成不同的类别数,并进行比较,从而找出最优方案。因为经验表明,选择不同的初始聚类中心会产生不同的聚类结果,且有不同
的精确率。

        K-means聚类算法中“means”的含义是新类别的中心点。该中心点是由分析者根据每个类别的原始中心点,逐一计算每一记录到各个类别中心点的
距离,把各个记录按照距离最近的原则归入各个类别,并计算得出的新类别的中心点,用平均数表示。然后重复迭代这一过程,即按照新的中心点位置,
重新计算每一记录距离新的类别中心点的距离,并重新进行归类,更新类别中心,直到达到一定的收敛标准,或者达到分析者事先指定的迭代数为止。

         K-means算法是解决聚类问题的一种经典算法。它的主要优点是算法简洁、快速。如果结果簇是密集的,且簇与簇之间区别明显时,它的效果最好。
对处理大的数据集,该算法是相对可伸缩的和高效率的。它的时间复杂度是O(nkt),其中以是所有对象的数目,k是簇的数目,t是迭代的次数。

        K-means算法也存在以下不足之处:

        (1)该算法只有在簇的平均值被定义的情况下才能使用。这可能不适于某些应用,例如涉及有分类属性的数据。K.means算法不适于发现非凸面形
状的簇,或者说是样本大小差异很大的簇。而且,它对于“噪声"和孤立点数据是敏感的,少量的孤立数据会对计算平均值产生很大的影响,这无疑使
平均值产生较大的偏离。

        (2)要求用户在运行算法之前给定要生成的簇的数目也是该算法的一个缺点,因为对于一组给定的样本,由于缺乏经验或其它的原因可能事先并不
知道生成多少个簇比较合适。

        (3)在K-means算法中,首先需要根据初始聚类中心来确定一个初始划分,然后对初始划分进行优化,这个初始聚类中心的选择对聚类结果有较大
的影响,一旦初始值选择的不好,可能无法得到有效的聚类结果,所以这个算法的聚类结果对初值的依赖是很强的,这也成为K-means算法的一个主要
问题,对于这个问题的解决,许多算法采用遗传算法进行改进可以使该问题得到改善。

         (4)在K-means算法中,采用平均误差准则函数,作为聚类准则函数,如果各个簇之间区别明显且数据分布稠密,则平方误差准则函数运用起来就
比较有效;但是如果各簇的形状和大小差别很大,为使以收敛则有可能会将大的聚类簇分割。

       该算法的流程:

        输入:聚类个数k,聚类文档数目n,文本预处理后的向量空间文件(文档-词矩阵)

       输出:k个聚类的集合

       (1)从n个文档中任意选择k个对象作为初始聚类中心;

       (2) 循环执行步骤(3)和(4)直到每个聚类不再发生变化为止;

       (3)根据每个聚类对象的均值(中心对象),计算每个对象与这些中心对象的距离,并根据最小距离重新对相应对象进行划分;

       (4)重新计算每个(有变化)聚类的均值(中心对象)

         

  在聚类问题中,给我们的训练样本是clip_image004,每个clip_image006.

     K-means算法是将样本聚类成k个簇(cluster),具体算法描述如下:

1、 随机选取k个聚类质心点(cluster centroids)为clip_image008[6]

2、 重复下面过程直到收敛 {

               对于每一个样例i,计算其应该属于的类

               clip_image009

               对于每一个类j,重新计算该类的质心

               clip_image010[6]

}


       k-means聚类算法的优点:理论可靠、算法简单、速度快。该算法利用分类后各部分数据对象之间的类内方差和最小作为聚类判别准则函数收敛的终止条件,从而得到最终的聚类中心和聚类结果。

 

 

你可能感兴趣的:(聚类,算法,文档,优化)