K-均值聚类(K-means clustering)

K-均值聚类(K-means clustering)是Mac Queen提出的一种非监督实时聚类算法,在最小化误差函数的基础上将数据划分为预定的类数K。该算法原理简单并便于处理大量数据,在基因表达数据分析中 得到广泛应用,如Tavazoie等应用K-means聚类酵母细胞周期表达数据。在K-means算法运行前必须先指定聚类数目K和迭代次数或收敛条 件,并指定K个初始聚类中心,根据一定的相似性度量准则,将每一条基因分配到最近或“相似”的聚类中心,形成类,然后以每一类的平均矢量作为这一类的聚类 中心,重新分配,反复迭代直到类收敛或达到最大的迭代次数。

K-means聚类算法对初始聚类中心依赖性比较大,随机选取初始聚类中心的缺点是如果使得初始聚类中心得到的分类严重偏离全局最优分类,这样算法可能会 陷入局部最优值。而且当聚类数比较大的时候,这种缺点更为明显,往往要经过多次聚类才有可能达到较满意的结果。Yeung等提出了采用均连接层次聚类结果 初始化K-means聚类中心。此方法有效地排除了随机初始化过程中引入的随机性因素,使得算法成为确定性的,可以得到稳定的聚类结果;而且,这种初始化 方式也能够利用数据中的类结构信息,使得聚类质量相对于随机初始化时的平均质量有显著的提高。

K-means聚类算法的一般步骤:

初始化。输入基因表达矩阵作为对象集X,输入指定聚类类数N,并在X中随机选取N个对象作为初始聚类中心。设定迭代中止条件,比如最大循环次数或者聚类中心收敛误差容限。
进行迭代。根据相似度准则将数据对象分配到最接近的聚类中心,从而形成一类。初始化隶属度矩阵。
更新聚类中心。然后以每一类的平均向量作为新的聚类中心,重新分配数据对象。
反复执行第二步和第三步直至满足中止条件。
该算法理论严密,实现简单,已成为很多其它改进算法的基础,但它对初始码书的选择非常敏感。

你可能感兴趣的:(mahout)