Spark MLlib 特征工程系列—特征提取LSH(MinHash)
MinHash 是一种用于近似集合相似度的哈希技术,尤其在 Jaccard 相似度计算方面具有显著效果。MinHash 经常用于去重、近似集合匹配等领域,能够在大规模数据处理场景中高效找到相似项。
在 Spark 中,MinHashLSH
提供了 MinHash 的实现,可以方便地处理集合数据。
1. MinHash 原理概述
MinHash 的核心思想是将集合映射为较小的哈希签名(MinHash 签名),并确保两个集合的 MinHash 签名相似度能够近似反映它们的 Jaccard 相似度。Jaccard 相似度定义为两个集合的交集与并集的比值:
[ J ( A , B ) = ∣ A ∩ B ∣ ∣ A ∪ B ∣ ] [ J(A, B) = \frac{|A \cap B|}{|A \cup B|} ] [J(A,B)=∣A∪B∣∣A