Tag: minhash

LSH Spark永远停留在approxSimilarityJoin()函数

我正在尝试实现LSH spark来为每个用户找到包含50000行和每行约5000个特征的非常大的数据集的最近邻居。 这是与此相关的代码。 MinHashLSH mh = new MinHashLSH().setNumHashTables(3).setInputCol(“features”) .setOutputCol(“hashes”); MinHashLSHModel model = mh.fit(dataset); Dataset approxSimilarityJoin = model .approxSimilarityJoin(dataset, dataset, config.getJaccardLimit(), “JaccardDistance”); approxSimilarityJoin.show(); 这项工作停留在approxSimilarityJoin()函数,永远不会超越它。 请让我知道如何解决它。

为LSH Minhash算法生成随机哈希函数

我正在编写一个Java中的minhashing算法,它要求我生成任意数量的随机散列函数(在我的情况下为240个散列函数),并通过它运行任意数量的整数(目前为2000)。 为了做到这一点,我一直在为240个散列函数中的每一个生成随机数a,b和c(从1到2001的范围)。 然后,我的哈希函数返回h =((a * x)+ b)%c,其中h是返回值,x是通过它运行的整数之一。 这是随机散列的有效实现,还是有更常见/可接受的方式来实现它? 这篇文章提出了类似的问题,但我仍然对答案的措辞感到困惑: Minhash实现如何找到排列的哈希函数