【期外】 (一)关于LSH :局部敏感哈希算法
LSH是我同学的名字,平时我会亲切的称呼他为离骚,老师好,左移(leftshift),小骚骚之类的,最近他又多了一个新的外号:局部敏感哈希(Locally sensitive hashing)。
好了,废话不多说直接转入正题:
『写在前面』局部敏感哈希是一种NOIP禁用的算法(因为使用了随机数),若不感兴趣就无需往下看了。
『什么是LSH?』
LSH就是局部敏感哈希,听着名字就知道和普通的哈希不一样,具体哪里不一样,就先吊吊你的胃口,稍后再说。先来了解LSH的各方面性能:
首先先来思考一个问题:
如果给你一堆数字,然后查找一个数是否在这堆数中存在或者找到一个最相似的数字,你会怎么办?
Answer:
1)首先,我们一定会想到线性查找,直白的来说,这简直就是最慢的一种方法,直接用数组存好后,一个一个来判断,当数据规模小的时候还好,但是,到了规模很大的时候,比如说有1亿个数据时,还能在规定的时间内找到吗?
2)其次,我们会想到二分查找,这种算法运用了分治的思想,将O(n)的时间复杂度降低到了O(log n)的时间复杂度,不过还需要排一次序,但是也费不了多少时间,这种方法相对来说是很可观的,但是有时还满足不了我们的需求。
3)这种想法也和 2)差不了多少,但是功能更强大,能够实现维护,插入,删除等一系列操作,没错,它就是二叉查找树,一种用树结构存储的方法,但是有时却很慢,放张图,细细体会吧~
比如说要查找4,那么就一定会全部遍历一遍,显然还是二分查找更快。
4)红黑树&其他平衡树:平衡树的种类很多,这些树能有效避免上图的情况,小编曾写过一篇红黑树博客,想看戳这里,里面也有详细的二叉查找树讲解。
5)好用的当然在后面——哈希算法,这种算法只要操作一遍数后,就可以做到O(1)的速度查找,但是问题却在于如何处理哈希冲突(有关哈希的讲解戳这里),适当的mod正是关键,但是往往我们处理不好这个问题,引起很多问题,比如2000和1000同时对10取模后将都是0,原本差别很大,但是现在没有了差别;再比如1008和1000对10取模后分别是8和0,原本差别不大,但是现在差别相对变大了很多,因此便请出了局部敏感哈希。
局部敏感哈希最大的特点在于保留原来的特性,虽然不一定能完全避免哈希冲突,但是能比一般哈希保留的更好,保持最大可能的相似度。
『哈希思想及实现』小编表示这是一个高冷的话题,离我太遥远,等我学的更好时会自己写的;现在就先放上大牛的博客吧:局部敏感哈希。
【期外】 (一)关于LSH :局部敏感哈希算法的更多相关文章
- R语言实现︱局部敏感哈希算法(LSH)解决文本机械相似性的问题(二,textreuse介绍)
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 上一篇(R语言实现︱局部敏感哈希算法(LSH) ...
- [Algorithm] 局部敏感哈希算法(Locality Sensitive Hashing)
局部敏感哈希(Locality Sensitive Hashing,LSH)算法是我在前一段时间找工作时接触到的一种衡量文本相似度的算法.局部敏感哈希是近似最近邻搜索算法中最流行的一种,它有坚实的理论 ...
- 大规模异常滥用检测:基于局部敏感哈希算法——来自Uber Engineering的实践
uber全球用户每天会产生500万条行程,保证数据的准确性至关重要.如果所有的数据都得到有效利用,t通过元数据和聚合的数据可以快速检测平台上的滥用行为,如垃圾邮件.虚假账户和付款欺诈等.放大正确的数据 ...
- 局部敏感哈希算法(Locality Sensitive Hashing)
from:https://www.cnblogs.com/maybe2030/p/4953039.html 阅读目录 1. 基本思想 2. 局部敏感哈希LSH 3. 文档相似度计算 局部敏感哈希(Lo ...
- 从NLP任务中文本向量的降维问题,引出LSH(Locality Sensitive Hash 局部敏感哈希)算法及其思想的讨论
1. 引言 - 近似近邻搜索被提出所在的时代背景和挑战 0x1:从NN(Neighbor Search)说起 ANN的前身技术是NN(Neighbor Search),简单地说,最近邻检索就是根据数据 ...
- 海量数据挖掘MMDS week2: 局部敏感哈希Locality-Sensitive Hashing, LSH
http://blog.csdn.net/pipisorry/article/details/48858661 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...
- 局部敏感哈希LSH
之前介绍了Annoy,Annoy是一种高维空间寻找近似最近邻的算法(ANN)的一种,接下来再讨论一种ANN算法,LSH局部敏感哈希. LSH的基本思想是: 原始空间中相邻的数据点通过映射或投影变换后, ...
- 局部敏感哈希(Locality-Sensitive Hashing, LSH)方法介绍
局部敏感哈希(Locality-Sensitive Hashing, LSH)方法介绍 本文主要介绍一种用于海量高维数据的近似近期邻高速查找技术--局部敏感哈希(Locality-Sensitive ...
- 局部敏感哈希(Locality-Sensitive Hashing, LSH)
本文主要介绍一种用于海量高维数据的近似最近邻快速查找技术——局部敏感哈希(Locality-Sensitive Hashing, LSH),内容包括了LSH的原理.LSH哈希函数集.以及LSH的一些参 ...
随机推荐
- Linux切换用户时报错/.bash_profile: Permission denied,命令行(终端提示符)出现-bash-4.2$
Linux切换用户时报错/.bash_profile: Permission denied,命令行(终端提示符)出现-bash-4.2$ 利用su - 切换用户时,发现有一个用户切时出现如下情况 [r ...
- 借鉴一个比较标准的后端RESTful API
我们制定的 API 规范,使用了微服务架构所以做了一些改进,我们更偏向使用 http code 标识,不然需要自己处理成功或失败的逻辑,在 200 内再包一层显得啰嗦:并且微服务系列都不支持,Feig ...
- MySQL数据管理
3.MySQL数据管理 3.1外键 方式一: create table `grade`( `gradeid` int(10) not null auto_increment comment '年纪 ...
- Centos 安装ixgbe驱动
1. 首先查看网卡类型 [root]# lspci | grep 8259907:00.0 Ethernet controller: Intel Corporation 82599ES 10-Giga ...
- 第九章 Lambda&方法引用
9.1.Lambda表达式 9.1.1.标准格式 (形式参数) -> {代码块} 9.1.2.使用前提 有一个接口并且接口中有且仅有一个抽象方法 9.1.3.常见应用 9.1.3.1.无参无返回 ...
- 移动端宽高适配JS
//定义全局变量 var winWidth = 0; /*窗口宽度*/ var winHeight = 0; /*窗口高度*/ //函数区 //实时获取浏览器窗口大小,当窗口大小变化开始相应操作 fu ...
- Spring Data R2DBC响应式操作MySQL
1. 前言 在使用R2DBC操作MySQL数据库 一文中初步介绍了r2dbc-mysql的使用.由于借助DatabaseClient操作MySQL,过于初级和底层,不利于开发.今天就利用Spring ...
- linux之DNS主域,从域,缓存服务器的架设
DNS主域,从域,缓存服务器的架设 DNS域名系统 组织域 顶级域 域名解析过程迭代递归 DNS(Domain Name System ) 在Internet中使用IP地址来确定计算机的地址. 为了 ...
- MySQL主从同步-原理&实践篇
来源:Onegoleya 简栈文化 什么是mysql的主从复制? MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点.MySQL 默认采用异步复制方式,这样从节点 ...
- 【HNOI2010】弹飞绵羊 题解(分块)
前言:其实这个题是用LCT做的,但蒟蒻因为太弱了,只会分块QAQ. ----------------------------- 题目链接 题目大意:给定$n$个装置,每个装置有弹力系数$k_i$,即在 ...
