您的位置:首页 > 其它

K-means文档聚类初值选择方法

2013-04-05 10:38 183 查看
k-means的本质在于通过多次迭代,达到逐步求精的目的。k-means算法具有线性的时间复杂度,因而更加适合像文档聚类这种运算时间开销较大的应用。但是该方法需要预先制定初始值,如聚类的初始种子点、聚类个数k、初始化分等。并且初始化分的好坏对最终聚类的质量有较大影响。选择初始聚类点一般有经验选择、随机选择、最小最大原则等方法,其中最小最大原则主要依据待聚类对象的相似情况选择初始聚点,从而克服了随机选择的盲目性,对经验知识的依赖也较小,本文对该方法进行了改进,提出了一种同时选择聚点和k值的方法,对比实验表明取得了较好的聚类效果。

基于最小最大原则的聚点选择方法的基本原理是:假设要将样品分成k个类别,则首先使相距最远(余弦相似度最小)的两个样品Xi1 和Xi2 为前两个聚点,而其余聚点的选取则可以用递推公式表达。若已经选择了m个聚点(m<k),则第m+1个聚点选取的原则为:



如果样本数目为N,可以考察前M个聚类点的深度,并根据深度最大值确定k值。M的取值应该足够大,以保证大于k值,但是也没有必要等于所有输入样本的个数。研究表明聚类的个数k一般小于样本个数的平方根,因此可以取M等于N1/2 的整数部分。



具体过程描述如下:

输入:N个待聚类的文档

输出:初始聚点(种子文档)集合S(|S|=k)和k值

1、初始化M等于N1/2 的整数部分,初始化聚点集合S、S1、S2;

2、i=1;

3、获取样本相似度矩阵,矩阵中保存任何两个文档之间的相似度

4、选择其中相似度最小(距离最大)的两个样本作为初始聚点;

5、i=i+1;

6、if i>M,then exit;

7、else

8、For r=i to N-1 //对于每个其余的点

9、max=0;

10、for j=0; to i-1 //对于每个已经选出的聚点

a)到先四度矩阵中检索文档r和文档j之间的相似度

b)if sim(r,j)>max,then max=sim(r,j);

11、End for

12、将最大相似度max以及对应的文档索引r保存到集合S1中;

13、End for

14、到S1中检索所有的max值,并找到其中的最小值min,将min及对应的文档索引r保存到集合S2中;

15、清空S1;

16、 Goto 5;

17、根据公式(4),计算S2中各聚点的深度depth;

18、找到深度最大的点,将之前的聚点保存到集合S中作为初始聚点;

19、算法结束。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: