mahout k-means

    xiaoxiao2021-03-25  72

           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值,需要用户事先了解数据的特点,而且该算法经常以局部最优结束,有时很难达到全局最优。                                     ④对初始聚类中心比较敏感,对于不同的初始值,聚类结果可能回产生很大的差异                                     ⑤易受噪声和孤立点影响                                         

    转载请注明原文地址: https://ju.6miu.com/read-14935.html

    最新回复(0)