文本聚类2

文本聚类2 - riky - 博客园

文本聚类2

A.问题背景
  • 聚类是对数据对象进行划分的一种过程,与分类不同的是,它所划分的类是未知的,故此,这是一个“无指导的学习”(unsupervised learning)过程,即聚类算法不需要“教师”的指导,不需要提供训练数据,它倾向于数据的自然划分。      
  • 文本聚类(Text clustering):  将文本集合分组成多个类或簇,使得在同一个簇中的文本内容具有较高的相似度,而不同簇中的文本内容差别较大。它是聚类分析技术在文本处理领域的一种应用。      
B.问题描述
1.划分聚类
给定:
  • 一个文档的集合D = {d1,d2,......,dk}      
  • 一个相似度的度量方法      
  • 一个划分的准则(cretirion)      
  • 一个期望的聚类数量K      
计算:
一个赋值函数=: g:D  Þ {1,......,K}
  • g满足划分的准则,使用指定的相似度计算方法      
2.层次聚类
         
文本聚类2

C.聚类评测
1.聚类好坏的直观标准
  • 内部标准:cluster内部的文档具有较高的相似度,cluster之间的文档具有较低的相似度。      
  • 外部标准:clustering的好坏还可以用它发现潜在的模式或分类的能力来进行判断      
2.内部评测标准的主要数据有
  • Pt:文档集合中所有可能文档对的数目,设文档总数为n,则Pt=n*(n-1)/2    
  • Tm:人工分类中所有可能的文档对数量    
  • Ta:聚类结果中所有可能的文档数量    
  • Ei:错误关联,指在聚类结果中出现,而在人工分类中没有出现的文档对数量。    
  • Em:遗漏关联,指在人工分类中出现,而在聚类结果中没有出现的文档对数量    
  • 聚类错误率(CE) = (错误关联 + 遗漏关联)/文档集合中所有可能的文档对数量=(Ea + Em)/Pt
    聚类全面率(CA) =  正确关联数/人工分类中文档对的数量 = (Ta - Ei) / Tm
    聚类准确率(CP) =  正确关联数/聚类结果中文档对的数量 = (Ta - Ei) / Ta
    3.外部评测的主要标准是纯度,也就是对聚类结果Ci,其中数量最多的类(正确分类)在聚类结果中的比例。
    Ⅱ.聚类方法
     
     
    A.划分方法(Partitional Clustering)
    对包含n个文档的文本集合,划分将生成k个分组,k<=n,每一个分组代表一个聚类
    1.KMeans方法
            step1.  任意选择k个对象作为初始的类的中心
            step2.  repeat
            step3.  根据类中文档的平均值,将每个文档(重新)赋给最相近的类
            step4.  更新类的平均值,
            step5.  until 不再发生变化。 
    文本聚类2

    B.层次方法(Hierarchical Clustering)
    1.基于层次的聚类
    层次聚类法(Hierarchical methods)将文本集合进行层次分解,组成一颗凝聚树。根据层次的形成方式可以分为两类:
    • 凝聚的方法(agglomerative),也称自底向上(bottom-up)   
    • 分裂的方法(divisive),也称自顶向下(top-down)   
    2.HAC(Hierarchical Agglomerative Clustering)算法
    a.自底向上的方法
    采用自底向上(bottom-up)的策略首先将每个文档看作一个类,然后相继合并相近的文本类,直到所有的文档合并为一个类,或者达到某个终止条件,如希望得到的类的个数或者两个相近的类超过了某一个阈值。 

    b.自顶向下的方法:
    它首先将所有的文档看作一个类,然后逐渐细分为越来越小的类,直到每个文档自成一类,或者达到某个终止条件,如希望得到的类的个数或者两个相近的类超过了某一个阈值。

    相关问题:
    • 缺点:一旦一个步骤(合并或分裂)完成就不能修正。现在已有多种改进方法,如凝聚层次的聚类与迭代重定位的集成等      
    • 时间复杂度O(n2),n为文档数。层次聚类算法实质上是一种贪心算法。      
    3.Single Link,Complete Link,Average Link
    在层次聚类中,一个关键的问题就是如何计算cluster之间的相似度(我们已经可以计算任意两个文档的相似度)。最简单的办法是“Center of Gravity"就是使用每个cluster的centroid进行计算,centroid即中心点,等于average of all its points。

    其他的方法还包括:
    • Single Link,Maximum similarity of pairs::     

      •  sim(c i,c j) = max Πci,y Î cj sim(x,y)
    • Complete Link, Minimum similarity of paris:     
      • sim(c i,c j) = min Πci,y Î cj sim(x,y)
    • Average Link,首先对两个cluster进行并运算,然后计算这个集合中任意两个文档相似度和,再取平均:     

      • sim(c i,c j) = [1/( |c i  Èc j |( |c i  Èc j | -1))] å Πci Ècj å Πci Ècj sim(x,y) 
    4.Term space vs. Document space
    通常情况下,我们使用term-doc矩阵来计算两个文档的相似度。但有些应用,比如topic的层次聚类,可以使用doc-term矩阵。在计算的时候,有些不同。比如,我们可以在固定时间内计算term-doc任意两个向量的内积,因为term的数量是固定的。而doc-term中doc的数量是动态变化的。

    你可能感兴趣的:(聚类)