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、算法结束。
基于最小最大原则的聚点选择方法的基本原理是:假设要将样品分成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、算法结束。
相关文章推荐
- 面试题:请描述K-means的原理,说明选择聚类中心的方法 引发的回顾
- 科学论文1-软件缺陷预测中基于聚类分析的特征选择方法
- 聚类经典方法K-means及其变种
- k-means & isodata 聚类方法
- HAWQ + MADlib 玩转数据挖掘之(八)——聚类方法之k-means
- Python机器学习应用 | 聚类——K-means方法及应用
- k-means聚类中k值与初始簇中心的选择
- 划分方法聚类(三) Canopy+K-MEANS 算法解析
- 基于距离的聚类方法--K-means
- skfuzzy.cmeans与sklearn.KMeans聚类效果对比以及使用方法
- k-means & isodata 聚类方法
- 基于K-MEANS聚类的胡萝卜纯色背景去除方法
- 基于K-MEANS聚类的胡萝卜纯色背景去除方法
- 机器学习--无监督学习之K-means聚类方法
- vs2005里,建立一个MFC单文档程序,未选择数据库支持,后来需要用sql server的处理方法
- 简单聚类方法K-means方法的实现
- k-means聚类方法的简单java实现
- Android中的使用ListView控件显示List集合中的数据,并对Item响应选择事件(方法一)
- k均值聚类(K-means)