主要分享下《Parallel Streaming Signature EM-tree: A Clustering Algorithm for Web Scale Applications》这篇文章。
15年末的时候,组内同事分享过这个算法,当时吸引大家眼球的是文章号称可以对亿级别的文档进行单机并行聚类,速度快并scalable,支持单机并行和分布式。当时我正好在做事件聚类相关的项目,十分需要一种能快速聚类海量文本的一种聚类工具。所以,后面就重点研究下这个算法,并做了点改进,让这个算法和Paragraph2vector进行结合起来,优势互补。现在重点介绍下这个算法。
1:内部质量评价
样本无类别标记。根据类内相似度和类间距离。
其中,k为最终的聚类数,表示聚类簇,表示聚类v的质心,d 是距离函数。(1)表示聚类的类簇的内差和,(2)表示整个聚类的类簇间的距离和,(3)表示聚类的总体质量:类簇间的距离和与类内距离的之比来衡量。总的来说:对于相同数据集,类簇间的距离越大,类内的距离越小,聚类质量相对越好,也就是总体质量值越大。
2:外部质量评价
样本有类别标记。当样本本身含有类别标记的时候,我们就可以根据类别标记来衡量聚类后的结果准确性相关指标。指标含有(1)簇纯度pure;(2)F1-measure等。
2.1 类簇纯度Purity
对于聚类形成后的任意类别r,聚类纯度定义为:
(4)
整个聚类结果的纯度定义为:
(5)
这里,是属于预定类i且被分配到第r个聚类的文档个数,为第r个聚类类别中的文档个数。
同一数据集,Purity值越大,聚类效果相对越好。
2.2 类簇F1-measure
类簇F1-measure的定义结合准确率和召回率的。对于聚类后聚类类别r和原来预定的类别i,
(6)
(7)
F1-measure(i,r) = 2 * Recall(i,r) * Precision(i,r)/ (Recall(i,r) + Precision(i,r)) (8)
其中,n(i,r) 表示聚类r中包含预定义类别i的文档个数,表示聚类r的文档个数,表示预定义类的文档个数。
最终聚类结果的评价函数:
(9)
同一数据集,F1值越大,聚类效果相对越好。
参考文献
De Vries C M, De Vine L, Geva S, et al. Parallel Streaming Signature EM-tree: A Clustering Algorithm for Web Scale Applications[J]. Computer Science, 2015:216-226.