跳转到主要内容

一个用于在多维数值数据中查找最近邻和聚类的Python局部敏感哈希实现

项目描述

请在以下模块API页面查看所有相关信息:

https://engineering.purdue.edu/kak/distLSH/LocalitySensitiveHashing-1.0.1.html

包括有关代码最新更改的信息。上述URL页面列出了您可以在自己的代码中调用的所有模块功能。

局部敏感哈希(LSH)是一种在大型数据集中查找最近邻的计算效率高方法。LSH的主要思想是在大型数据集中避免比较每一对数据样本,以便找到不同数据样本的最近相似邻居。使用LSH,可以预期一个数据样本及其最近的相似邻居将以高概率被哈希到同一个桶中。通过将放置在同一个桶中的数据样本视为相似性检查的候选对象,我们大大减轻了在大数据集中进行相似性检测的计算负担。

虽然局部敏感哈希(LSH)算法传统上用于查找最近邻,但本模块更进一步,探索使用LSH对数据进行聚类。严格来说,这违背了LSH的基本宗旨,即只返回最近邻。(在LSH中通常用余弦距离定义邻居时,如果数据样本X是Y的最近邻,Y是Z的最近邻,这并不意味着X和Z总是足够接近,可以被认为是彼此的最近邻。)尽管如此,如果您认为您的数据文件由不重叠的数据簇组成,本模块可能会很好地找到这些簇。

调用LocalitySensitiveHashing的典型用法语法

from LocalitySensitiveHashing import *
datafile = "data_for_lsh.csv"
lsh = LocalitySensitiveHashing(
                   datafile = datafile,
                   dim = 10,
                   r = 50,
                   b = 100,
                   expected_num_of_clusters = 10,
          )
lsh.get_data_from_csv()
lsh.initialize_hash_store()
lsh.hash_all_data()
similarity_groups = lsh.lsh_basic_for_neighborhood_clusters()
coalesced_similarity_groups = lsh.merge_similarity_groups_with_coalescence( similarity_groups )
merged_similarity_groups = lsh.merge_similarity_groups_with_l2norm_sample_based( coalesced_similarity_groups )
lsh.write_clusters_to_file( merged_similarity_groups, "clusters.txt" )

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码发行版

LocalitySensitiveHashing-1.0.1.tar.gz (63.6 kB 查看哈希值)

上传时间 源代码

由以下支持