聚类
1.聚类定义: 聚类算法将一系列文档聚团成多个子集或簇(cluster),其目标是建立类内紧密、类间分散的多个簇。换句话说,聚类的结果要求簇内的文档之间要尽可能相似,而簇间的文档之间则要尽可能不相似。
聚类是无监督学习(unsupervised learning)的一种最普遍的形式。无监督也意味着不存在对文档进行类别标注的人类专家。聚类中,数据的分布和组成结构决定最后的类别归属。
聚类算法的一个关键输入是距离计算方法。计算距离时采用的是二维平面上的距离计算方法。基于这种距离计算方法在图中得出了三个不同的簇。在文档聚类当中,距离计算方法往往采用欧氏距离。不同的距离计算方法会导致不同的聚类效果。因此,距离的计算方法是影响聚类结果的一个重要因素。
扁平聚类(flat clustering)算法会给出一系列扁平结构的簇,它们之间没有任何显式的结构来表明彼此的关联性。而层次聚类(hierarchical clustering)算法则会产生层次性的聚类结果。
了解硬聚类和软聚类之间的差别也相当重要。硬聚类(hard clustering)计算的是一个硬分配(hard ssignment)过程,即每篇文档仅仅属于一个簇。而软聚类(soft clustering)算法的分配过程是软的,即一篇文档的分配结果是在所有簇上的一个分布。在软分配结果中,一篇文档可能对多个簇都具有隶属度。
聚类假设(clustering hypothesis)给出了将聚类应用于 IR 时的基本假设。
聚类假设:在考虑文档和信息需求之间的相关性时,同一簇中的文档表现互相类似。
聚类假设所表达的是,如果簇中某篇文档和查询需求相关,那么同一簇中的其他文档也和
查询需求相关。这是因为聚类算法将那些共有很多词项的文档聚在一起。聚类假设实质上就是
第 14 章的邻近假设。两种情况下,我们都认为内容相似的文档在相关性上的表现也相似。
聚类假设:在考虑文档和信息需求之间的相关性时,同一簇中的文档表现互相类似。
聚类假设所表达的是,如果簇中某篇文档和查询需求相关,那么同一簇中的其他文档也和
查询需求相关。这是因为聚类算法将那些共有很多词项的文档聚在一起。聚类假设实质上就是
第 14 章的邻近假设。两种情况下,我们都认为内容相似的文档在相关性上的表现也相似。
2.扁平聚类:
聚类的势─ 簇的数目:
聚类算法中的一个难点是如何确定簇的数目或者说聚类的势(cardinality),这个数目记为K。通常 K 只不过是基于经验或领域知识的一个良好的猜测结果。但是,在 K-均值算法中,我们将引入一个选择 K 值的启发式方法,并将 K 的选择融入到目标函数当中。
3.层次聚类(hierarchical clustering或hierarchic clustering)则会输出一个具有层次结构①的簇集合,因此能够比扁平聚类输出的无结构簇集合提供更丰富的信息。层次聚类不需要事先指定簇的数目,并且大部分用于IR中的层次聚类算法都是确定性算法。当然,层次聚类在获得这些好处的同时,其代价就是效率降低。最普遍的层次聚类算法的时间复杂度至少是文档数目的平方级,而前面提到的K-均值算法和EM算法(参考 16.4 节)的时间复杂度都是线性的。
三年程序员,专注语音文本分析、大数据挖掘、预训练模型及知识图谱相关技术的探索