mahout k-means

来源:互联网 发布:linux vsftp安装包 编辑:程序博客网 时间:2024/05/21 21:33
 

       Kmeans算法是应用的最广泛的基于划分的算法,实验室有个小伙伴最后的毕业论文也是基于kmeans聚类进行研究的(咦。。。好像前言不搭后语)。
       kmeans算法的大致思想是:首先随机选取K个数据对象,每个数据对象分别代表了K个簇的中心点,对于剩下的每个对象,分别计算该对象到各个中心点的距离,并将他们分配给最近的簇,然后重新计算各个簇的中心。重复这个过程,直至聚类准则函数收敛。准则函数一般有两种,一是全局误差函数,二是前后两次中心误差变化

      Kmeans算法的基本过程如下:

      step1:输入:k, data[n];

      step2:选择k个初始中心点,例如c[0]=data[0],…c[k-1]=data[k-1];       

      step3:对于data[0]….data[n], 分别与c[0]…c[k-1]比较,假定与c[i]差值最少,就标记为i;

      step4:对于所有标记为i点,重新计算c[i]={ 所有标记为i的data[j]之和}/标记为i的个数;
      step5:重复(2)(3),直到所有c[i]值的变化小于给定阈值。
      Kmean算法特点:①对于处理大规模数据集,算法相对是可伸缩和高效的
                                    ②当数据集满足球状簇或者团状簇时,聚类效果很好。
                                    ③事先确定K值,需要用户事先了解数据的特点,而且该算法经常以局部最优结束,有时很难达到全局最优。
                                    ④对初始聚类中心比较敏感,对于不同的初始值,聚类结果可能回产生很大的差异
                                    ⑤易受噪声和孤立点影响
                                   
    



1 0
原创粉丝点击