如何存储位置敏感的哈希值?

2024-04-04

我已经有了生成局部敏感哈希的算法,但是我应该如何对它们进行存储以利用它们的特性(即相似的元素具有接近的哈希(具有汉明距离))?

在 matlab 代码中,我发现他们只是在要搜索的点的哈希值和数据库中的点的哈希值之间创建一个距离矩阵,以简化代码,同时引用所谓的 Charikar 方法来实现搜索的实际良好实现方法。

我试图寻找这一点,但我不确定如何将我找到的任何方法(如多探针方法)应用于我的案例。如果您已经拥有哈希值,那么这些技术似乎都不容易插入。有没有简单的示例代码?或者有什么建议吗?

这是我正在讨论的包含 matlab 代码的页面的链接:http://www.eecs.berkeley.edu/~kulis/klsh/klsh.htm http://www.eecs.berkeley.edu/~kulis/klsh/klsh.htm


基于:在局部敏感哈希中搜索 https://stackoverflow.com/questions/37377042/search-in-locality-sensitive-hashing读完后我会这么说舍入算法的相似性估计技术 http://www.cs.princeton.edu/courses/archive/spr04/cos598B/bib/CharikarEstim.pdf:

这个问题在某种程度上很广泛,所以我将在这里给出一个最小(抽象)的例子:

我们有 6 (=n) 数据集中的向量,其中d每个位。假设我们做了 2 (=N) 随机排列。

让第一个随机排列开始!请记住,我们排列the bits, 不是向量的顺序。排列位后,它们保持顺序,例如:

v1
v5
v0
v3
v2
v4

现在是查询向量,q,到达,但(几乎)不太可能是same在我们的数据集中有一个向量(排列后),因此我们不会通过执行二分搜索找到它。

然而,我们最终会处于两个向量之间。所以现在我们可以想象场景是这样的(例如q位于 v0 和 v3 之间:

v1
v5
v0 <-- up pointer
   <-- q lies here
v3 <-- down pointer
v2
v4

现在我们向上或向下移动指针,寻找与最多位匹配的 vi 向量q。假设它是 v0。

类似地,我们进行第二次排列并找到向量 vi,假设为 v4。我们现在比较第一个排列中的 v0 和 v4,看看哪个最接近q,即哪一个具有最多的位等于q.


但是,如果您正在寻求现成的实施,您应该询问软件推荐 https://softwarerecs.stackexchange.com/。我还会查看我链接到的论文,看看作者是否公开了代码,或者他们是否愿意在联系他们后分享代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何存储位置敏感的哈希值? 的相关文章

  • 有没有办法在 Visual Studio 或 MATLAB 中“映射”程序执行顺序?

    我所说的 地图 是指我有一个 主 函数 它调用内部的许多其他程序 我希望能够看到哪个文件首先运行 第二个 第三个等等 基本上 我希望能够请参阅这个大型 OOP 设计程序 创建者没有为其制作 UML 类图 中的依赖项列表和顺序 以帮助破译代码
  • 数组中 2 个百分位之间的平均元素

    我有 2 个长度为 200 的向量 例如 A 和 B 然后我使用以下方法找到数组 A 的每第二个百分位数 A1 prctile A 1 2 100 1 这样A1是一个长度为50的数组 现在我想找到A1中每两个元素内的A元素的平均值 即A的第
  • 比较元胞数组中的字符串

    我试图在单词列表中找到最常见的单词 到目前为止 这是我的代码 uniWords unique lower words for i 1 length words for j 1 length uniWords if uniWords j lo
  • MATLAB 中元胞数组的左连接

    I ve 2 cellMATLAB 中的数组 例如 A jim 4 paul 5 sean 5 rose 1 第二个 B jim paul george bill sean rose 我想做一个 SQL 左连接 这样我就可以得到 B 中的所
  • Matlab 中 interp2 的类似 OpenCV Api

    有没有类似的功能 其工作原理与 interp2 x y frame z xd yd linear 0 在 OpenCV 中 功能cv remap 几乎可以满足您的要求 请参阅文档here http docs opencv org modul
  • 使用 R 实现具有不同距离度量的 KNN

    我正在研究一个数据集 以便比较不同距离度量的效果 我正在使用KNN算法 R中的KNN算法默认使用欧几里德距离 所以我写了自己的一个 我想找到最近邻居和目标之间正确的类标签匹配的数量 我一开始就准备好了资料 然后我调用数据 wdbc n 我选
  • 如何检测图像中对象的实例?

    我有一张包含几个特定对象的图像 我想检测这些物体在该图像中的位置 为此 我有一些模型图像 其中包含我想要检测的对象 这些图像在我想要检测的对象实例周围得到了很好的裁剪 这是一个例子 在这张大图里 我想检测此模型图像中表示的对象 自从你最初发
  • 在matlab中设置图例符号的精度

    我有这个 leg2 strcat Max Degree num2str adet 1 1 ch l leg3 strcat Min Degree num2str adet 1 2 ch l leg4 strcat Max Request n
  • MATLAB 是否已有 YAML 库/解析器?

    我想使用 YAML 跨多种语言交流一些数据 将其视为 与语言无关的序列化 其中一种语言是 MATLAB 但我似乎找不到该语言的 YAML 库 我在 Google 上检查了 matlab yaml 和 matlab yaml parse 似乎
  • 如何将Matlab代码库与Android集成?

    我有一个算法和 MATLAB 中的一些其他代码 我想在我的 Android 应用程序中使用它 我怎样才能做到这一点 我可以从 MATLAB 制作 jar 文件以便与 Android 一起使用吗 我必须做点别的事吗 如果您还有其他产品 适用于
  • 如何建立数据流挖掘的滑动窗口模型?

    我们遇到的情况是 流 来自传感器的数据或服务器上的点击流数据 采用滑动窗口算法 我们必须将最后 例如 500 个数据样本存储在内存中 然后 这些样本用于创建直方图 聚合并捕获有关输入数据流中异常的信息 请告诉我如何制作这样的滑动窗 如果您询
  • 将单元格转换为双精度

    gt gt C 1 2 CF 2 C 1 2 CF 2 gt gt whos C Name Size Bytes Class Attributes C 2x2 478 cell 我怎样才能转换C into double以便 gt gt C
  • 在 Matlab 中快速加载大块二进制文件

    我有一些相当大的 int16 格式的数据文件 256 个通道 大约 75 1 亿个样本 每个文件约 40 50 GB 左右 它以平面二进制格式编写 因此结构类似于 CH1S1 CH2S1 CH3S1 CH256S1 CH1S2 CH2S2
  • MATLAB:比较两个不同长度的数组

    我有两个长度不同的数组 由于采样率不同 需要比较 我想对较大的数组进行下采样以匹配较小的数组的长度 但是该因子不是整数而是小数 举个例子 a 1 1 375 1 75 2 125 2 5 2 875 3 25 b 1 2 3 有什么方法可以
  • 如何从绘图处理程序中绘图?

    我有绘图的处理程序或图形的处理程序 例子 h plot 1 0 2 10 xx get h xx DisplayName Annotation 1x1 handle Color 0 0 1 LineStyle LineWidth 0 500
  • 傅里叶变换定理 matlab

    我目前正在尝试理解二维傅里叶位移定理 根据我到目前为止所了解到的情况 图像空间中的平移会导致相位差异 但不会导致频率空间中的幅度差异 我试图用一个小例子来演示这一点 但它只适用于行的移位 而不适用于列的移位 这是一个小演示 我只在这里显示幅
  • python 正弦和余弦精度

    如何提高Python正弦和余弦精度 例如 我想使用以下代码 只需计算随机复向量 x 的 y cos acos x import numpy as np N 100000 x np zeros N 1j np zeros N for k in
  • 在 Matlab 中显示有理数

    我有两个整数 m n 它们一起形成 m n 形式的有理数 现在我只想以这种理性的形式在 Matlab 中显示它们 我可以通过这样做来做到这一点 char sym m n 所以 如果 例如m 1 n 2 Matlab将显示1 2 然而 如果m
  • 为什么 MATLAB 在打印大量 (.png) 图形时速度会变慢?

    我正在将大量数字打印为 png 文件 每个图都是数据矩阵中的一列图 我获取 png 文件并将它们串在一起形成动画 我的问题是 前几百张图像打印得很快 但创建每个新图形的时间却迅速增加 从前几百个 png 文件的约 0 2 秒到第 800 个
  • 非模态 questdlg.m 提示

    我的代码绘制了一个图 然后提示用户是否想使用不同的参数绘制另一个图 问题是 当 questdlg m 打开时 用户无法查看绘图的详细信息 这是代码 while strcmp Cont Yes 1 Some code modifying da

随机推荐

  • 如何渲染模板和布局?

    在控制器方法中 如何渲染模板和布局 Like so def new render template gt devise invitations new layout gt application unauthorized2 t2 end r
  • VS2010中关闭双击取消停靠

    我总是不小心双击 VS2010 中的选项卡并取消停靠它们 是否可以关闭此行为 注意 我正在使用 Productivity Power Tools 中的 Document Well 2010 Plus 以防产生影响 在文档选项卡上找到它以及高
  • 重命名实体框架 T4 模板生成的类名称?

    我有一个包含大量表的数据库 不幸的是这些表的命名没有任何标准约定 表名 另一个表名 还有另一个表名 垃圾表 我使用实体框架和标准 T4 代码生成模板在 C 中创建 POCO 类 是否有我可以遵循的最佳实践 让我可以合并自己的约定 在 C 应
  • Excel - VLOOKUP 与 INDEX/MATCH - 哪个更好?

    我了解如何使用每种方法 VLOOKUP or HLOOKUP vs INDEX MATCH 我寻找它们之间的差异不是出于个人喜好 而是主要在以下方面 是否有一种方法可以做到而另一种方法不能做到的事情 一般来说 哪一种更有效 或者取决于具体情
  • 如何导入具有正确类型的 Vue 类组件?

    例如 如果我有一个单文件 Vue 类组件 MyComponent vue
  • 在 jQuery .serialize() 中包含空值字段

    我正在尝试通过 jQuery post 提交表单并通过序列化表单数据 form serialize 不幸的是未选中的字段单选按钮 or 复选框没有被序列化 因此已提交 有没有办法包含所有字段 无论它们是否包含值 我想这只会影响这样的字段
  • 使用seaborn和pandas绘图防止重叠条

    我正在尝试使用 pandas 绘图来创建带有 seaborn 导入的堆叠水平条形图 我想删除条之间的空间 但也不让条重叠 这是我尝试过的 import pandas as pd import numpy as pd import seabo
  • HDF5 - 并发、压缩和 I/O 性能 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我对 HDF5 性能和并发性有以下疑问 HDF5 支持并发写访问吗 撇开并发因素不谈 HDF5 的性能如何 输入 输出性能 does 压缩率影响性能
  • 适用于 IOS/Android 应用程序的谷歌云存储下载

    有没有一种方法可以将单个大文件作为多线程下载 并在从谷歌云存储下载后合并所有文件 是的 从 Google Cloud 存储下载对象时 您可以指定要检索的字节范围 使用 XML API 这将通过 Range 标头进行处理 这对于恢复中断的下载
  • 正则表达式如何验证字母之间的下划线

    我如何允许任何单词字符和下划线之间应该有一个字母和一个数字 示例 ab2 sb s s 但它不应该允许 sdc 或 s2 这是我的代码 a zA Z0 9 6 255 我在 javascript 上使用正则表达式 您需要将字符长度检查与模式
  • MVC 的替代方案 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 模型视图控制器的替代 设计方法 有哪些 MVC 似乎很流行 SO 是用它构建的 我知道很多 但它是唯一使用的方法吗 关于几种不同的交互
  • 错误:mysqlnd 无法使用旧的不安全身份验证连接到 MySQL 4.1+

    我收到以下错误 数据库连接失败 mysqlnd 无法使用旧的不安全身份验证连接到 MySQL 4 1 请使用管理工具通过以下命令重置您的密码SET PASSWORD PASSWORD your existing password 这将存储一
  • C# 项目在 Visual Studio 中重建的原因

    我有一个包含约 320 个项目的大型解决方案 即使对单个 Web 表单进行很小的更改 也会导致测试 调试小更改所需的构建时间很长 我怀疑构建后文件复制任务会 触及 文件日期时间并导致多次重建 在没有任何强大的命名和版本控制影响的情况下 除了
  • 如何定义输出类型取决于输入类型的函数

    给定以下课程 case class AddRequest x Int y Int case class AddResponse sum Int case class ToUppercaseRequest str String case cl
  • 在 x86-64 asm 中:如果源操作数是两个立即值,是否有办法优化两个相邻的 32 位存储/写入内存?

    有没有一个好的方法来优化这段代码 x86 64 mov dword ptr rsp 0 mov dword ptr rsp 4 0 其中立即值可以是任何值 不一定为零 但在这种情况下始终是立即常量 原双店还慢吗 硬件中的写组合和 op 的并
  • Swift4:“MessageKind”没有成员“url”

    下面是 MessageKit 库的示例代码 目前 其行为是所有图像消息必须在显示给最终用户之前完全加载 因此需要花费大量时间等待 我想要的是在加载所有消息后加载图像 看 1 你会看到 kind 变量将是一个 mediaItem 看2 你会看
  • ENOENT:没有这样的文件或目录 - pug 中出现错误

    当上传到 Heroku 时 它会抛出此错误 而在本地主机上运行时不会出现错误 Here is browser message 这是我的display pug extends LoginLayout LoginLayout pug block
  • 计算沿 y 轴方向(角度测量)的变化率?

    我想计算 iPhone 沿 y 轴方向的变化率 1 最初我需要将参考定义为y轴 2 然后测量相对于定义参考的方向变化率 角度测量 CMAttitude 是否提供可靠的角度测量来实现此目的 或者我可以使用旋转矩阵或积分陀螺仪数据 我实现了这种
  • 如何在顶部显示中线

    我有一个正在运行的方便脚本ab然后生成情节 然而有一个问题 它向我显示了每一点 这很好 但是我还想看到它们之间的平均 线 我会在图中展示更多 那么有没有办法在上面添加中 中游侠呢 Script usr local bin gnuplot s
  • 如何存储位置敏感的哈希值?

    我已经有了生成局部敏感哈希的算法 但是我应该如何对它们进行存储以利用它们的特性 即相似的元素具有接近的哈希 具有汉明距离 在 matlab 代码中 我发现他们只是在要搜索的点的哈希值和数据库中的点的哈希值之间创建一个距离矩阵 以简化代码 同