原始LSH算法实现详解
**
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算法实现详解相关推荐
- TOPSIS(逼近理想解)算法原理详解与代码实现
写在前面: 个人理解:针对存在多项指标,多个方案的方案评价分析方法,也就是根据已存在的一份数据,判断数据中各个方案的优劣.中心思想是首先确定各项指标的最优理想值(正理想值)和最劣理想值(负理想解),所 ...
- 离线强化学习(Offline RL)系列3: (算法篇)策略约束 - BRAC算法原理详解与实现(经验篇)
论文原文:[Yifan Wu, George Tucker, Ofir Nachum: "Behavior Regularized Offline Reinforcement Learnin ...
- shell编程数组与冒泡算法排序详解
shell编程数组与冒泡算法排序详解 一 数组的四种表达方式 二 数组的增删改查操作 三 数组传参 3.1 主程序向函数传数组参数 3.2 从函数返回数组到主程序 四 冒泡算法排序 一 数组的四种表达 ...
- 机器学习,深度学习基础算法原理详解(图的搜索、交叉验证、PAC框架、VC-维(持续更新))
机器学习,深度学习基础算法原理详解(图的搜索.交叉验证.PAC框架.VC-维.支持向量机.核方法(持续更新)) 机器学习,深度学习基础算法原理详解(数据结构部分(持续更新)) 文章目录 1. 图的搜索 ...
- 秒懂的shell编程数组与冒泡算法排序详解
shell编程数组与冒泡算法排序详解 一.数组的四种表达方式 二 .数组的增删改查操作 三 .数组传参 3.1 主程序向函数传数组参数 3.2 从函数返回数组到主程序 四 .冒泡算法排序 一.数组的四 ...
- CRF(条件随机场)与Viterbi(维特比)算法原理详解
摘自:https://mp.weixin.qq.com/s/GXbFxlExDtjtQe-OPwfokA https://www.cnblogs.com/zhibei/p/9391014.html C ...
- 算法:详解布隆过滤器的原理、使用场景和注意事项@知乎.Young Chen
算法:详解布隆过滤器的原理.使用场景和注意事项@知乎.Young Chen 什么是布隆过滤器 本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data struc ...
- JavaScript 面试中常见算法问题详解
JavaScript 面试中常见算法问题详解,翻译自 https://github.com/kennymkchan/interview-questions-in-javascript.下文提到的很多问 ...
- JavaScript数据结构与算法——链表详解(下)
在JavaScript数据结构与算法--链表详解(上)中,我们探讨了一下链表的定义.实现原理以及单链表的实现.接下来我们进一步了解一下链表的其他内容. 1.双向链表 双向链表实现原理图: 与单向链表不 ...
最新文章
- LINUX 使用tcgetattr函数与tcsetattr函数控制终端三
- python下载图片、已知url_python 爬虫之requests爬取页面图片的url,并将图片下载到本地...
- 《黑天鹅》读书笔记(part3)--那些声称注重过程而非结果的人并没有完全讲真话
- SAP UI5 应用开发教程之二十九 - SAP UI5 的路由和导航功能介绍
- 查找三 哈希表的查找
- 基于OHCI的USB主机 —— UFI查询代码
- JDK1.8 中文文档下载与在线阅读
- XEON® Scalable-如何为虚拟化挑选合适的CPU
- epoll原理_Epoll源码阅读手札
- Java导出Excel 复杂表头
- windows CA的几点记录小结
- linux内核C -- 第03课:宏构造利器——语句表达式
- 【机器学习】SVM核方法
- unity 设置纯白3D环绕背景
- .java.smap_利用Java Binary Webshell对抗静态检测
- WPF中应用toolkit Chart控件安装
- Seaweedfs上传大文件_large file
- 确定性随机数发生器测试向量——DRBG-HMAC-SHA1
- ug后处理如何加密_UG后处理修改方法
- 比较详细的HC-SR04超声波传感器数据及机器人避障的应用方法
热门文章
- ASP.NET 4.0 页面 ValidateRequest=false 失效不起作用
- qt linux地图控件,Qt编写地图综合应用6-百度在线地图
- css镂空三角形样式
- word自定义插入图片快捷键
- 利用Astar算法实现飞行轨迹的三维路径规划(基于Matlab代码实现)
- 人际关系-《关键冲突》书中的精髓:如何掌握化解人际关系危机的技巧,让我们的人际关系更和谐。
- 腾讯蓝鲸智云平台搭建
- 电脑花屏是屏幕坏了吗_电脑花屏时好时坏怎么回事 电脑花屏时好时坏如何彻底解决...
- 使用oledbdatareader取得数据库中数据
- 关于日志流量监控预警小小项目 | flask