**

98年LSH算法实现理论解释

LSH算法适用于高维近似查找,详细的算法理论参见原论文,这里只是记录一下实现中的细节,代码随后附上。
首先需要用排序算法找出数据集中点坐标的最大值C,以及数据的维度d。随机生成哈希映射函数hash;
对于数据集P中所有点用如下方法hash到对应的桶(bucket)中,{桶数的确定根据hash函数的tag数确定:n=2^tag}:
P中有点pi(x1,x2,…,xd),生成的hash函数为h={tag1,tag2,…tagn}
1.由tag1/C取商,确定x的位置
2.由tag1/C取余,将得到的余数与x比较,若x大,则tag1对应为1,否则为0.
3.对所有的tag进行一二步操作,可以得到点pi对应的汉明映射。
举例: 数据维度为4,坐标最大值为5,hash函数h={2,4,6}
有点p(5,1,2,2),先tag1/C有2/5商为0,确定为点p的第一个数5
对tag1/C有2/5取余为2,,,,5>2,因此汉明映射的第一位为1
对tag2操作,tag2/C有4/5商为0,确定为点p的第一个数5
取余操作有5/5余0,数据5>0,因此汉明映射的第二位为1
对tag3操作,tag3/C有6/5商1,确定为点p的第二个数1
取余操作有6/5余1,数据1=1,因此汉明映射的第三个数是1
综上,点p对应的汉明映射为桶{1,1,1}

对于查询点p(3,4,1,2)
2/5商0余2,对应p的第一个数3,又3>2,因此汉明第一位为1
4/5商0余4,对应p的第一个数3,又3<4,因此汉明第二位为0
6/5商1余1,对应p的第二个数4,又4>1,因此汉明第三位为1
对应点p在桶{1,0,1}

原始LSH算法实现详解相关推荐

  1. TOPSIS(逼近理想解)算法原理详解与代码实现

    写在前面: 个人理解:针对存在多项指标,多个方案的方案评价分析方法,也就是根据已存在的一份数据,判断数据中各个方案的优劣.中心思想是首先确定各项指标的最优理想值(正理想值)和最劣理想值(负理想解),所 ...

  2. 离线强化学习(Offline RL)系列3: (算法篇)策略约束 - BRAC算法原理详解与实现(经验篇)

    论文原文:[Yifan Wu, George Tucker, Ofir Nachum: "Behavior Regularized Offline Reinforcement Learnin ...

  3. shell编程数组与冒泡算法排序详解

    shell编程数组与冒泡算法排序详解 一 数组的四种表达方式 二 数组的增删改查操作 三 数组传参 3.1 主程序向函数传数组参数 3.2 从函数返回数组到主程序 四 冒泡算法排序 一 数组的四种表达 ...

  4. 机器学习,深度学习基础算法原理详解(图的搜索、交叉验证、PAC框架、VC-维(持续更新))

    机器学习,深度学习基础算法原理详解(图的搜索.交叉验证.PAC框架.VC-维.支持向量机.核方法(持续更新)) 机器学习,深度学习基础算法原理详解(数据结构部分(持续更新)) 文章目录 1. 图的搜索 ...

  5. 秒懂的shell编程数组与冒泡算法排序详解

    shell编程数组与冒泡算法排序详解 一.数组的四种表达方式 二 .数组的增删改查操作 三 .数组传参 3.1 主程序向函数传数组参数 3.2 从函数返回数组到主程序 四 .冒泡算法排序 一.数组的四 ...

  6. CRF(条件随机场)与Viterbi(维特比)算法原理详解

    摘自:https://mp.weixin.qq.com/s/GXbFxlExDtjtQe-OPwfokA https://www.cnblogs.com/zhibei/p/9391014.html C ...

  7. 算法:详解布隆过滤器的原理、使用场景和注意事项@知乎.Young Chen

    算法:详解布隆过滤器的原理.使用场景和注意事项@知乎.Young Chen 什么是布隆过滤器 本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data struc ...

  8. JavaScript 面试中常见算法问题详解

    JavaScript 面试中常见算法问题详解,翻译自 https://github.com/kennymkchan/interview-questions-in-javascript.下文提到的很多问 ...

  9. JavaScript数据结构与算法——链表详解(下)

    在JavaScript数据结构与算法--链表详解(上)中,我们探讨了一下链表的定义.实现原理以及单链表的实现.接下来我们进一步了解一下链表的其他内容. 1.双向链表 双向链表实现原理图: 与单向链表不 ...

最新文章

  1. LINUX 使用tcgetattr函数与tcsetattr函数控制终端三
  2. python下载图片、已知url_python 爬虫之requests爬取页面图片的url,并将图片下载到本地...
  3. 《黑天鹅》读书笔记(part3)--那些声称注重过程而非结果的人并没有完全讲真话
  4. SAP UI5 应用开发教程之二十九 - SAP UI5 的路由和导航功能介绍
  5. 查找三 哈希表的查找
  6. 基于OHCI的USB主机 —— UFI查询代码
  7. JDK1.8 中文文档下载与在线阅读
  8. XEON® Scalable-如何为虚拟化挑选合适的CPU
  9. epoll原理_Epoll源码阅读手札
  10. Java导出Excel 复杂表头
  11. windows CA的几点记录小结
  12. linux内核C -- 第03课:宏构造利器——语句表达式
  13. 【机器学习】SVM核方法
  14. unity 设置纯白3D环绕背景
  15. .java.smap_利用Java Binary Webshell对抗静态检测
  16. WPF中应用toolkit Chart控件安装
  17. Seaweedfs上传大文件_large file
  18. 确定性随机数发生器测试向量——DRBG-HMAC-SHA1
  19. ug后处理如何加密_UG后处理修改方法
  20. 比较详细的HC-SR04超声波传感器数据及机器人避障的应用方法

热门文章

  1. ASP.NET 4.0 页面 ValidateRequest=false 失效不起作用
  2. qt linux地图控件,Qt编写地图综合应用6-百度在线地图
  3. css镂空三角形样式
  4. word自定义插入图片快捷键
  5. 利用Astar算法实现飞行轨迹的三维路径规划(基于Matlab代码实现)
  6. 人际关系-《关键冲突》书中的精髓:如何掌握化解人际关系危机的技巧,让我们的人际关系更和谐。
  7. 腾讯蓝鲸智云平台搭建
  8. 电脑花屏是屏幕坏了吗_电脑花屏时好时坏怎么回事 电脑花屏时好时坏如何彻底解决...
  9. 使用oledbdatareader取得数据库中数据
  10. 关于日志流量监控预警小小项目 | flask