python实现e2lsh高维数据集k近邻搜索——实现流程
- lsh学习链接:
LSH(Locality Sensitive Hashing)原理与实现
对高维数据查询最近邻,推荐使用p-stable LSH;
minLSH是针对文档查询最近邻得方法; - python学习与使用:
python入门之类 - 常用函数:
random.gauss(mu, sigma):均值为mu且标准偏差为sigma的高斯分布
random.uniform(x, y):将随机生成下一个实数,它在 [x, y] 范围内。
numpy.inner():返回一维数组的向量内积。对于更高的维度,它返回最后一个轴上的和的乘积。
字典(Dictionary) update() :函数把字典dict2的键/值对更新到dict里。 - lsh参数计算学习链接:
参考论文:2004 Locality-sensitive hashing using stable distributions
E2LSH的原理与实现
LSH在欧式空间的应用(1)–碰撞概率分析
LSH在欧式空间的应用(2)–工作原理
LSH在欧式空间的应用(3)–参数选择
以上三个链接是用R语言举例;
正态分布就是高斯分布; - knn搜索
在使用lsh做近似近邻搜索后,得到近邻索引,通过近邻索引对近邻数据做k近邻检索,得到精确的k个最近邻。
python做 knn可以调用库函数实现:
from sklearn.neighbors import NearestNeighbors
# 函数功能:对数据集x的前1000个数据做10近邻搜索;
# 搜索范围:数据集x内全体数据;
def knn_search(X):# 查询点y:x内前一千个数;Y = X[0:1000]# 查询范围:x内全体数据;查询11近邻;nbs = NearestNeighbors(n_neighbors=11, algorithm='ball_tree').fit(X)# distances:最近邻距离;indices:最近邻索引号;distances, indices = nbs.kneighbors(Y)# knn近邻搜索范围包含自己,返回结果去除自己(即去除查询结果第一列),得到查询点的十近邻;return indices[:, 1:]
综上,完成lsh对数据集k近邻查询;
查询结果(对数据集做两遍查询,一次e2lsh,一次knn,对比查询结果):
python实现e2lsh高维数据集k近邻搜索——实现流程相关推荐
- [转载] Python 统计学习方法——kdTree实现K近邻搜索
参考链接: K最近邻居的Python实现 效果说明: Input:输入Num个Dim维点的坐标,Points.size=(Num,Dim),输入一个目标点坐标Target.查找最近邻点数量K.Outp ...
- Python,OpenCV中的K近邻(knn K-Nearest Neighbor)及改进版的K近邻
Python,OpenCV中的K近邻(knn K-Nearest Neighbor)及改进版的K近邻 1. 效果图 2. 源码 参考 这篇博客将介绍将K-最近邻 (KNN K-Nearest Neig ...
- python人工智能——机器学习——分类算法-k近邻算法
分类算法-k近邻算法(KNN) 定义:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别. 来源:KNN算法最早是由Cover和Hart提 ...
- kd树 python实现_kd树 寻找k近邻算法 python实现
按照链接里的算法写了k近邻的python实现 from math import sqrt class KDnode: def __init__(self, data, left, right, spl ...
- 【Python机器学习】多项式回归、K近邻KNN回归的讲解及实战(图文解释 附源码)
需要源码请点赞关注收藏后评论区留言私信~~~ 多项式回归 非线性回归是用一条曲线或者曲面去逼近原始样本在空间中的分布,它"贴近"原始分布的能力一般较线性回归更强. 多项式是由称为不 ...
- 机器学习与python实战(一)-k近邻
kNN(k-nearest neighbor)算法是一个简单而经典的机器学习分类算法,通过度量"待分类数据"和"类别已知的样本"的距离对样本进行分类. from ...
- python人工智能——机器学习——分类算法-k近邻算法——kaggle案例: Facebook V: Predicting Check Ins
题目及翻译 Facebook and Kaggle are launching a machine learning engineering competition for 2016. Faceboo ...
- K近邻法之kd树及其Python实现
作为机器学习中一种基本的分类方法,K近邻(KNN)法是一种相对简单的方法.其中一个理由是K近邻法不需要对训练集进行学习.然而,不需要对训练集进行学习,反过来也会造成对测试集进行判定时,计算与空间复杂度 ...
- 机器学习 K近邻之KD树 搜索KD树
思想:K近邻搜索 1.寻找"当前最近点" 寻找最近邻的子节点作为目标的"当前最近点" 2.回溯 以目标点和"当前最近点"的距离沿树根部进行回 ...
最新文章
- Zookeeper分布式一致性原理(二):一致性协议
- 【UVA - 10037】Bridge(过河问题,经典贪心)
- 下载人脸认证助手_关于微信人脸解封验证失败方法
- Mac - 苹果电脑mac系统释放硬盘空间方法汇总
- QQ音乐全新上线HiRes高解析音质 听歌体验再升级
- Ubuntu14.04系统hostapd编译及使用
- python中的main函数可以被其他文件调用么_Python中在脚本中引用其他文件函数的实现方法...
- 你的特斯拉Model 3,只需要一台手机就能偷走它
- ubuntu 安装 teamViewer 出现错误
- GBase数据库-数据转换函数
- python如何更新pip_[Python] 如何更新 PIP 到最新版本?
- st语言 数组的常用方法_ST语言入门基础
- 照片转3d模型_云从科技3D人体重建技术刷新3项纪录!仅凭照片即可生成精细模型...
- 从烂漫少女到已为人母:八年青春 梦断互联网
- flex布局 gird布局
- 蜂窝移动的架构 以及省电的方法
- 你不知道的css——4. 基线、中线、x-height、单位ex(含文本与图标对齐技巧)
- accept文件上传类型
- 深度学习入门系列23:项目:用爱丽丝梦游仙境生成文本
- python webshell_使用 Python 批量爬取 WebShell