新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 搜索引擎, 信息分类与检索, 语义搜索, Lucene, Nutch, GRUB, Larbin, Weka
    [返回] 中文XML论坛 - 专业的XML技术讨论区计算机技术与应用『 Web挖掘技术 』 → 论文:基于距离的划分聚簇算法[分享] 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 7727 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 论文:基于距离的划分聚簇算法[分享] 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     DMman 帅哥哟,离线,有人找我吗?魔羯座1984-1-11
      
      
      威望:1
      头衔:数据挖掘青年
      等级:研二(Pi-Calculus看得一头雾水)(版主)
      文章:803
      积分:5806
      门派:W3CHINA.ORG
      注册:2007/4/9

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给DMman发送一个短消息 把DMman加入好友 查看DMman的个人资料 搜索DMman在『 Web挖掘技术 』 的所有贴子 点击这里发送电邮给DMman 访问DMman的主页 引用回复这个贴子 回复这个贴子 查看DMman的博客楼主
    发贴心情 论文:基于距离的划分聚簇算法[分享]

    叶若芬  李春平
    (清华大学软件学院  北京  100084)

    摘  要:k-means算法在聚簇大的数据集时是公认比较有效的算法之一,然而它只能应用在具有数值属性描述的数据对象集合上,这种数据对象叫做数值数据;却无法应用于真实世界中具有其他形形色色属性的数据对象集合上,比如颜色、纹理、形状等特征描述的数据对象集合,这种数据叫做分类数据。为了能对分类数据进行聚簇,对k-means算法进行了扩展,出现两种新的算法:一种是k-modes算法,另一种是k-prototypes算法。但这两种算法都需要用户事先确定聚簇数k、阈值t和聚簇中心Q,在不明白数据分布状况的情况下能较准确地确定这3个参数值是很不容易的,改进的k-modes算法有效解决了这一问题。
    关键词:聚簇,k-means,k-modes,k-prototypes,相异度
    Distance-based Partition Clustering Algorithm
    Ye Ruofen    Li Chunping
    (School of Software, Tsinghua University,Beijing 100084,China)

    Abstract: The k-means algorithm is well known for its efficiency in clustering large data sets. However, working only on numeric values prohibits it from being used to cluster real world data containing categorical values, such as those data whose attributes is color, texture and shape etc. To cluster categorical values,the k-modes algorithm and k-prototypes algorithm were presented. Yet it is necessary for users to predefine the number of clusters, the center of a cluster and the initial threshold for these algorithms. It is difficult to judge the number of clusters and the initial threshold while not understanding the distribution of the original data. The issue is addressed in this paper for an improved k-modes algorithm.
    Key words: Cluster,k-means,k-modes,k-prototypes,Dissimilarity
    1  引言
    数据挖掘是数据库研究、开发和应用最活跃的分支科学之一,从大量数据中用非平凡的方法发现有用的知识和人们感兴趣的数据模式成了人们的一种自然需求[1]。随着数据挖掘研究的蓬勃发展,出现很多数据挖掘的方法,其中聚簇是最基本的方法,它既可以独立地应用,也可以作为其他数据挖掘方法的前期工作。在聚簇方法中,k-means算法是最著名和最常用的划分法之一,根据实际需要相继出现了许多k-means算法的变种。k-means算法能有效地处理规模较大和高维的数据集合,但却只能聚簇数值数据,因为数值数据能用欧几里德距离测量不同数据对象之间的相异度;不能处理非数值数据,即分类数据。不过现实生活中碰到的数据类型是各种各样的,要发挥数据挖掘工具应有的作用,设计混合型数据的数据挖掘工具已经成为必然趋势。为了能对分类数据进行聚簇,对k-means算法进行了扩展,出现两种新的算法:一种是k-modes算法,另一种是k-prototypes算法。k-modes算法用了一种简单的相异度测量处理分类数据,用新的相异度值进行聚簇的过程和k-means算法是一样的;k-prototypes算法结合了k-means算法和k-modes算法的相异度测量方法聚簇数值型和分类型的混合数据[2, 3]。这两种扩展的算法对聚簇大的数据集以及高维的数据集也都是很有效的,不足之处在于要预先确定把原始数据集分成几个簇,聚簇数k的值对聚簇结果能产生很大影响,关于这一点,本文提出了一种比较有效的解决方法。
    2  介绍k-means算法
    把数据分成几组,按照定义的测量标准,同组内数据与其他组数据相比具有较强的相似性,这就叫聚簇[4]。聚簇是数据挖掘最基础的操作,但现在存在的一些传统聚簇方法已不能满足处理复杂类型的、高维的、任意分布形状的数据集合的需要。
    k-means 算法就是用得最多的一种传统的聚簇方法,是一种划分法,相似度的计算是求数据对象与簇中心的距离,与簇中心距离近的就划为一个簇。其工作流程如下:首先,随机地选择k个对象,每个对象初始地代表了一个簇的平均值或中心。对剩余的每个对象,根据其与各个簇中心的距离,将其赋给最近的簇。然后重新计算每个簇的平均值,求出新的簇中心,再重新聚簇。这个过程不断重复,直到准则函数收敛。该算法的时间复杂度是O(nkt),其中n是所有对象数目,k是簇的数目,t是迭代次数。它的效率比较高;缺点是只能处理数值型数据,不能处理分类数据,对例外数据非常敏感,不能处理非凸面形状的聚簇[1]。
    3  介绍k-modes算法
    k-modes算法改变了k-means算法的相异度测量方法,用一个简单的匹配相异度测量对分类数据进行聚簇处理。
    3.1  简单的匹配相异度测量
    设X、Y是分类数据集中的两个对象,该对象是m(x1, x2,…,xm) 维的,则这两个对象之间的相异度为:
    d (X, Y ) =  
    当xj = yj时,(xj,yj) = 0;当xj≠yj时,(xj,yj) = 1。
    3.2  k-modes算法的工作流程
    (1)预先定义好k个簇,确定出各个簇的簇模式Q即簇重心。
    (2)根据簇模式Q将每个对象赋给最邻近的簇,更新簇模式Q,重新分配对象到各        簇中。
    (3)不断重复(2),直到不再发生变化为止[2]。
    其中,k是指要把数据集分成的簇数,簇模式Q是一代表簇中心的向量,t是阈值。该算法关键是要确定k、Q和t。
    3.3  对k-modes 算法的改进之处
    对原始数据集合用k-modes算法进行聚簇时,事先让用户指定簇数k、代表簇中心的模式向量Q以及阈值t。对于大量的数据集,用户盲目地确定这3个参数,一般有效性是很差的,下面提出了确定这3个参数的算法思想。
    1.确定聚簇数k以及阈值t
    为了确定聚簇数k,用一个基于距离计算相异度的聚簇方法聚簇样本数据,下面是具体过程以及解释说明。
    (1)从原始数据中随机地取m个点作为样本数据放到集合S中,定义一个初始阈值         t = t0。
    (2)给所有的样本数据加上未被聚簇的标记,并定义一个k = 0。
    (3)从样本数据集未被聚簇的点中选择一个初始点P。
      { 标记P属于聚簇Ck;
       从P开始递归地按照深度优先方式遍历各点,P' = NEAR(P, t),
       如果P'不是空就属于Ck,否则退回到前一点接着进行搜索,
       更新d,d是聚簇Ck中各对顶点之间的平均距离,
       更新t = t0×d,t是阈值。}
    (4)如果还有未聚簇的点,使k = k+1,重复(3)进行聚簇。
    其中,函数NEAR(P,t)是:
      { 寻找P的最近邻居P',即dist (P',P)≤t;
       如果没有P'被发现就返回NULL,否则返回P'。}
    该算法中采用了古典的基于距离的聚簇方式,距离值就是简单匹配的相异度测量值。随机地从原始数据中取样本读入内存,对样本数据都标记未聚簇,任选一点作为起始点P,给一个初始阈值t0,一般用一个比较保守的小数据,找与P的距离小于阈值t0的点P',找到后把P'和P划为同一簇,然后求聚簇中数据对象相异度的平均值以更新阈值t。再找和P'相邻的点,这样按深度搜索算法找遍整个样本集,直到没有点可以进入该簇为止。再找另一未进入簇内的点标记为下一个簇,还是按深度搜索遍历各点,不断重复,最终可以得到聚簇数k。该算法虽是一古典的基于距离的相异度测量法,但是在对样本聚簇过程中不以一个点为中心进行聚簇,而以簇内的每个点为中心进行聚簇,这样按深度优先模式继续下去,能得到任意形状的聚簇,不再是只以一点为中心的球形聚簇,此方法的优点是对任意形状的数据分布聚簇效果都比较好。另外,阈值t初始是预定义的静态值t0,随着聚簇过程中不断加入新点并不断求出聚簇的直径d,阈值t也动态地随着直径d的变化而变化。
    2.用样本数据得到的聚簇结果求聚簇模式Q
    用基于频率的方法求模式向量Q的过程如下:
    求每一簇中在某一属性上对象数的百分数fr,fr称为相对频率,找出每个簇中相对频率最大的一个的属性作为Q向量的属性值,即让n(k, j)是第k组属性j上的对象数,fr(Aj =        ck, j/X) = n(k, j)/n最大者就是qj属性。每个属性都这样求,可以得到Q向量。
    通过以上过程求得簇数k、阈值t、模式Q三个参数后,下面是完整的k-modes算法流程。
    (1)按照簇数k、阈值t、模式Q三个参数,将每个对象赋给最邻近的簇模式Q。
    (2)基于相对频率更新簇中的模式。
    (3)按新的模式基于相异度重新分配对象,当发现对象应该属于另外一模式时重新分配。
    (4)重复(2)、(3)步骤直到没有对象变化为止。
    利用k-modes算法让计算机计算聚簇数k、聚簇中心Q和阈值t,将来整个原始数据集的聚簇效果会比较好,但此算法是需要用户主观性地取样本,在对样本数据聚簇时要人为地先确定一个初始阈值t0。样本的选取采用均匀性或随机的方式;初始阈值一般保守性地取得偏小些,因为考虑有孤立点的干扰。
    4  介绍k-prototypes算法
    k-modes算法可以处理分类数据、高维数据、大数据集,再加上用图的深度搜索方法求初始簇数、基于频率模式更新簇中心向量值、用相异度平均值求阈值t,可以说是很有效的聚簇分类数据方法。但在实际应用中非常容易见到的数据类型是这样的:它的数据对象属性是既有数值数据描述的,又有分类数据描述的混合情况。对于这个问题,k-prototypes算法是结合了k-means算法和k-modes算法来解决的,用数学公式表示其相异度测量方法如下。
    两个混合型的对象X和Y,它们的属性描述是A1r,A2r,…,Apr,Ap+1c,…,Amc,前p个属性是数值数据,后m – p个属性是分类数据,这样的两个数据对象X和Y的相异度是:
    d (X,Y ) = +  ,
    其中,第1部分是欧几里德距离测量数值属性,第2部分是简单匹配相异度测量处理分类属性, 是权值,用来衡量数值属性和分类属性在聚簇测量中所占权重。每个簇的模式Q的前p个属性是数值型的,就用每个属性i在簇中的平均值作为Q的属性qi的值,后m–p个属性用相对频率最大的一个作为属性值。对这种混合型数据对象的相异度测量,k-prototypes算法结合了k-means算法和k-modes算法的技术。
    5  结论和未来的工作
    k-means算法在数据挖掘中最活跃的特性是能有效地聚簇大的数据集,然而它只能应用于数值型数据,k-modes算法和k-prototypes算法用新的相异度测量法正好弥补了k-means算法不能处理分类数据的缺陷,同时继承了k-means算法的有效性。k-modes算法和k-prototypes算法存在的遗憾是必须预先确定好数据需要分为多少簇,聚簇模式Q是什么,如果这个问题不解决好会直接影响最后的聚簇结果,解决方法是对样本数据用了一个古典的基于距离的算法来确定聚簇数k和基于频率的方法确定聚簇模式Q,这是一个比较有效的方法。
    存在的问题是:对样本的选取是否偏,这在很大程度上取决于用户对数据相关领域知识的熟悉程度,可是人们在实际生活中对许多的领域并不了解,所以应该进一步对k-modes算法和k-prototypes算法进行研究,让用户配置出较准确的参数,取得更好的聚簇效果。
    参 考 文 献
    [1] Han Jiawei, Michelie Kamber. Data Mining Concepts and Techniques. 北京:机械工业出版社,2001
    [2] Huang Zhexue. Extensions to the k-Means Algorithm for Clustering Large Data Sets with Categorical Values. Data Mining and Knowledge Discovery, 1998, 2:283~304
    [3] Daniel Barbara. Using Self-Similarity to Cluster Large Data Sets. Data Mining and Knowledge Discovery, 2003, 7:123~152
    [4] Dharmendra S. Modha, W. Scott Spangler. Feature Weighting. k-Means Clustering. Machine Learning,            2003, 52:217~237


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    数据挖掘青年 http://blogger.org.cn/blog/blog.asp?name=DMman
    纪录片之家 (很多纪录片下载)http://www.jlpzj.com/?fromuid=137653

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/6/4 18:12:00
     
     GoogleAdSense魔羯座1984-1-11
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Web挖掘技术 』 的所有贴子 点击这里发送电邮给Google AdSense 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2025/8/10 11:17:44

    本主题贴数1,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    78.125ms