首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏得物技术

    近邻搜索算法浅析

    简介 随着深度学习的发展和普及,很多非结构数据被表示为高维向量,并通过近邻搜索来查找,实现了多种场景的检索需求,如人脸识别、图片搜索、商品的推荐搜索等。 另一方面随着互联网技术的发展及5G技术的普及,产生的数据呈爆发式增长,如何在海量数据中精准高效的完成搜索成为一个研究热点,各路前辈专家提出了不同的算法,今天我们就简单聊下当前比较常见的近邻搜索算法。 实现 当前有比较成熟的库实现了各种主流的近邻搜索算法,在项目中可以通过这些基础库来构建对应的近邻搜索服务,其中使用比较广泛的是faiss库,由Fackbook开源,在支持不同算法的同时,也支持在超大规模数据集上构建 k近邻搜索以及支持GPU来加速索引构建和查询,同时社区活跃,在考虑到性能和可维护性,faiss库是构建近邻检索服务的比较好的选择。 总结 本文展示了当前比较常见的几种近邻搜索算法,并简单分析了各算法的原理;随着深度学习的不断发展,不同场景对近邻搜索的需求越来越多,必定会有新的算法不断地涌现,每种算法有它适合的场景,在选择不同算法时需要结合业务的需求

    3.6K104编辑于 2022-08-03
  • 来自专栏AI科技时讯

    近邻搜索|Nearest neighbor search

    对于恒定维度查询时间,平均复杂度为 O(log N ) [4]在随机分布点的情况下,最坏情况复杂度为 O ( kN ^(1-1/ k )) [5] 或者,R-tree数据结构被设计为支持动态最近邻搜索上下文 [7] 邻近邻域图中的贪婪搜索 近似图方法(例如 HNSW [8])被认为是近似最近邻搜索的当前最新技术。 **在集合S中搜索查询q的最近邻采用在图中搜索顶点的形式 G(V,E) 。 变体 NNS 问题有许多变体,其中最著名的两个是*k-*最近邻搜索和ε-近似最近邻搜索。 k-最近邻 k-最近邻搜索识别查询的前k 个最近邻。 支持近似最近邻搜索的算法包括局部敏感散列、最佳 bin 优先和基于平衡框分解树的搜索

    2K50编辑于 2023-09-01
  • 高效图搜索:提升最近邻查找速度

    更高效的近似最近邻搜索新方法将基于图的搜索速度提升20%至60%,且不依赖特定的图构建方法。 作者:Hsiang-Fu Yu 2023年6月6日 阅读时长:4分钟会议信息The Web Conference 2023相关论文FINGER: 用于基于图的近似最近邻搜索的快速推理技术正文当今许多机器学习应用都涉及最近邻搜索 搜索算法遍历该图,并定期更新当前已遇到的离查询最近的点列表。在一篇发表于今年Web Conference的论文中,我们描述了一种新技术,可大幅提升基于图的最近邻搜索效率。 据此,我们提出了一种非常高效地计算近似距离的方法,并表明它能将近似最近邻搜索所需的时间减少20%到60%。 基于图的搜索广义上讲,近似k最近邻搜索算法——即寻找离查询向量最近的k个邻居——分为三类:量化方法、空间划分方法和基于图的方法。在多个基准数据集上,基于图的方法迄今表现出了最佳性能。

    13810编辑于 2026-04-07
  • 来自专栏AI科技时讯

    图像搜索|高维空间最近邻逼近搜索算法

    业务场景 上一次介绍图像搜索的基本原理,现在记录下使用的数据包的问题。 NMSLIB 项目地址:https://github.com/nmslib/nmslib 非度量空间库(NMSLIB)是一种高效的跨平台相似性搜索库和用于评估相似性搜索方法的工具包。 NMSLIB是一个可扩展的库,这意味着可以添加新的搜索方法和距离函数。NMSLIB可以直接在C ++和Python中使用。 详细参数 关于参数的设置可以见 https://github.com/nmslib/nmslib/blob/master/python_bindings/parameters.md 参考 高维空间最近邻逼近搜索算法评测

    1.8K20发布于 2019-08-15
  • 图近似最近邻搜索效率提升新方法

    更高效的近似最近邻搜索当今许多机器学习应用都涉及最近邻搜索:数据被表示为高维空间中的点;查询(如图片或文本字符串)被嵌入该空间;检索与查询最接近的数据点作为候选解决方案。 然而,计算查询与数据集中每个点之间的距离通常耗时过长,因此模型构建者转而使用近似最近邻搜索技术。其中最流行的是基于图的近似方法,即将数据点组织成图结构,搜索算法遍历图并持续更新遇到的最近邻点列表。 因此,提出了一种高效计算近似距离的方法,显示可将近似最近邻搜索所需时间减少20%至60%。 基于图的搜索大致来说,近似k最近邻搜索算法(寻找最接近查询向量的k个邻居)分为三类:量化方法、空间分区方法和基于图的方法。在多个基准数据集上,基于图的方法目前表现最佳。 转而专注于一种适用于所有图构建方法的技术,因为它提高了搜索过程本身的效率。该技术称为FINGER(基于图的近似最近邻搜索的快速推理)。

    30310编辑于 2025-08-30
  • 来自专栏mathor

    搜索5

     深度优先搜索一般是递归实现的,搜索过程中总是优先遍历当前节点的子节点。 从这一节开始,我们将学习广(宽)度优先搜索  这个GIF图中,节点被染成绿色的顺序表示在宽度优先搜索过程中节点被访问的顺序。 于是依次访问这两个节点,同时在访问时,我们发现了节点2的儿子节点4和5,以及节点3的儿子节点6和7,将这4个节点记录下来 当完成第二层的访问后,继续根据记录来依次访问节点4~7,也对应了图中的第三层节点 由于这些节点都不包含有子节点,不会再增加记录的节点数量,因此访问完成后退出搜索  在上面的过程中我们发现以下两个事实: 广度优先搜索的顺序与子节点到初始节点的距离有关,离初始节点越近的子节点会更早被访问 根据题目描述,我们可以知道以下几个信息: 该图中需要搜索的节点为格子,我们用坐标[x,y]来表示格子 若将相邻格子的距离视为1,搜索目标为[1,1]到[n,m]的最短路径 墙壁的格子是不能进入的,因此在搜索过程中需要进行判定

    1K30发布于 2018-07-05
  • 深度度量学习提升近邻搜索可靠性

    通过深度度量学习实现更可靠的近邻搜索许多机器学习应用涉及将数据嵌入到一个表示空间中,其中嵌入之间的几何关系承载着语义内容。 执行一项有用任务通常涉及检索该空间中一个嵌入的邻近邻居:例如,查询嵌入附近的答案嵌入、文本描述嵌入附近的图像嵌入、一种语言中的文本嵌入在另一种语言中的文本嵌入附近,等等。

    22110编辑于 2026-01-09
  • 来自专栏Pulsar-V

    Math-Model(二)-无向图最近邻路径搜索

    %a=xlsread('../附件一:已结束项目任务数据.xls'); clc clear GPS_1=importdata('../GPS_DATA.txt'); GPS_2=importdata('../GPS_DATA2.txt'); %X=min([min(GPS_1(:,1)),min(GPS_2(:,1))]):0.01:max([max(GPS_1(:,1)),max(GPS_2(:,1))]); %Y=min([min(GPS_1(:,2)),min(GPS_2(:,2))]):0.01:

    37730发布于 2019-03-12
  • 来自专栏小小程序员——DATA

    K近邻算法 K近邻算法原理

    # K近邻算法 K近邻算法原理## $k$近邻算法介绍- $k$近邻法 (k-Nearest Neighbor;kNN) 是一种比较成熟也是最简单的机器学习算法,可以用于基本的分类与回归方法- 算法的主要思路 - $k$近邻法是基本且简单的分类与回归方法。 $k$近邻法的基本做法是:对给定的训练实例点和输入实例点,首先确定输入实例点的$k$个最近邻训练实例点,然后利用这$k$个训练实例点的类的多数来预测输入实例点的类。 - $k$近邻模型对应于基于训练数据集对特征空间的一个划分。$k$近邻法中,当训练集、距离度量、$k$值及分类决策规则确定后,其结果唯一确定。## $k$近邻法三要素 1. 统计这k个邻居的类别频次 5. k个邻居里频次最高的类别,即为测试对象的类别## 篇末结尾>感谢您的观看,如果觉得还行,请点赞关注支持一下

    61800编辑于 2023-12-10
  • 来自专栏Reinvent Data Science

    基于 Milvus 构建的近似最近邻(ANN)搜索引擎

    ✏️ 作者介绍: 周充,格像科技后端工程师 需求背景 根据格像科技公司的业务需求,我们需要搭建一个近似最近邻(Approximate Nearest Neighbor,即 ANN)搜索引擎,以便将在线向量相似搜索功能应用到公司其他业务中 为了赋予 ANN 搜索引擎相同的向量相似搜索能力,我们选择在 Milvus 和现有的基础系统之间增加一个中间层,从而将 Milvus 强大的向量相似搜索功能移植到我们的系统之中。 Java SOA 进程本身是一个 Java Web 应用,类似一个代理(proxy),会将相似搜索的请求转发给 Milvus 进程,并返回搜索结果。 ? 3.2 复制节点 为了实现 ANN 搜索引擎系统的高可用性,我们需要更多其他的副本节点来提供相同的向量搜索服务。实现方案如下图所示: ? 客户端在发起向量搜索请求时,会带上最新的分区名称。如果某个节点上的新数据已经完成加载,会返回最新分区中的搜索结果。

    1.6K20发布于 2021-01-05
  • 来自专栏人工智能前沿讲习

    AI综述专栏| 大数据近似最近邻搜索哈希方法综述(下)

    1 导读 最近邻搜索(Nearest Neighbor Search)也称作最近点搜索,是指在一个尺度空间中搜索与查询点最近点的优化问题。 最近邻搜索在很多领域中都有广泛应用,如:计算机视觉、信息检索、数据挖掘、机器学习,大规模学习等。 本文是关于大数据近似最近邻搜索问题中应用哈希方法的综述。文章分为两部分,本篇为第二部分。 因此,多模态哈希方法被提出来解决从多种异构领域中搜索出相似数据本体的问题。 2.2.2.2 多模态 初始的多模态哈希方法一般通过将原始空间中的异质数据点映射到一个统一的汉明空间中再进行相似度搜索排序。 图3.2显示了以图像搜索为例,应用上述权重对汉明距离进行重排序的完整过程。 ? 图3.2 图像搜索整体框架 3.2 非对称距离 哈希编码分为投影和量化为二进制两个过程。

    1.8K20发布于 2020-05-11
  • 来自专栏企鹅号快讯

    如何在Python中快速进行语料库搜索:近似最近邻算法

    随后,如果我们有这些词嵌入对应的语料库,那么我们可以通过搜索找到最相似的嵌入并检索相应的词。如果我们做了这样的查询,我们会得到: 我们有很多方法来搜索语料库中词嵌入对作为最近邻查询方式。 是近似最近邻搜索算法该出现时候了:它可以快速返回近似结果。很多时候你并不需要准确的最佳结果,例如:「Queen」这个单词的同义词是什么? 在这种情况下,你只需要快速得到足够好的结果,你需要使用近似最近邻搜索算法。 在本文中,我们将会介绍一个简单的 Python 脚本来快速找到近似最近邻5. 构建和保存 Annoy 索引。 现在我们可以使用 Annoy 索引和 lmdb 图,获取查询的最近邻

    2.5K50发布于 2018-02-05
  • 来自专栏NLP算法工程师之路

    K近邻分类

    思想简单,既可以用来做分类也可以用来做回归 2) 可用于非线性分类 3) 训练时间复杂度比支持向量机之类的算法低,仅为O(n) 4) 和朴素贝叶斯之类的算法比,对数据没有假设,准确度高,对异常点不敏感 5) 计算量大,尤其是特征数非常多的时候 2)样本不平衡的时候,对稀有类别的预测准确率低 3)KD树,球树之类的模型建立需要大量的内存 4)使用懒散学习方法,基本上不学习,导致预测时速度比起逻辑回归之类的算法慢 5

    1.2K10发布于 2019-12-18
  • 来自专栏xiaosen

    K 近邻算法

    5)使用预测模型对这些待测的特征向量进行预测并得到结果。 K近邻是机器学习算法中理论最简单,最好理解的算法,虽然算法简单,但效果也不错。 GridSearchCV GridSearchCV 是 scikit-learn 库中的一个类,用于进行参数网格搜索。 它结合了交叉验证和网格搜索的功能,可以自动地对给定的模型和参数组合进行训练和评估,以找到最佳的参数设置。 x_test, y_train, y_test = \ train_test_split(x, y, test_size=0.2, stratify=y, random_state=0) # 创建网格搜索对象 show_digit(1) # 训练模型 train_model() # 测试模型 test_model() 小结:  KNN(K-Nearest Neighbors)算法,即K最近邻算法

    94822编辑于 2024-03-15
  • 来自专栏SIGAI学习与实践平台

    K近邻算法

    k近邻算法的思想了,最近邻算法是k近邻算法k=1时的一种特殊情况。 k近邻算法简称kNN算法,由Thomas等人在1967年提出[1]。 上面的例子是二分类的情况,我们可以推广到多类,k近邻算法天然支持多类分类问题。 预测算法 k近邻算法没有求解模型参数的训练过程,参数k由人工指定,它在预测时才会计算待预测样本与训练样本的距离。 在实现时可以考虑样本的权重,即每个样本有不同的投票权重,这称方法称为为带权重的k近邻算法。另外还其他改进措施,如模糊k近邻算法[2]。 kNN算法被成功的用于文本分类[5-7],图像分类[8-11]等模式识别问题。应用kNN算法的关键是构造出合适的特征向量以及确定合适的距离函数。

    1.7K10发布于 2018-06-28
  • 来自专栏SIGAI学习与实践平台

    K近邻算法

    当一个未分级的苹果拿到后可以首先将这个苹果的果径测量出来,然后再和这5个等级的苹果进行对照,假如未分级苹果的果径是82mm则划分为第三个等级,如果是83mm则划分为第二个等级,以此类推。 k近邻算法的思想了,最近邻算法是k近邻算法k=1时的一种特殊情况。 如果看k=1,k近邻算法退化成最近邻算法。 k近邻算法实现简单,缺点是当训练样本数大、特征向量维数很高时计算复杂度高。 第5个条件是区分性,如果两点间的距离为0,则两个点必须相同: ? 满足上面4个条件的函数都可以用作距离定义。 常用距离定义 常用的有欧氏距离,Mahalanobis距离等。 kNN算法被成功的用于文本分类[5-7],图像分类[8-11]等模式识别问题。应用kNN算法的关键是构造出合适的特征向量以及确定合适的距离函数。

    2K11发布于 2018-08-07
  • 来自专栏互联网大杂烩

    K近邻(KNN)

    KNN概念 kNN算法又称为k最近邻(k-nearest neighbor classification)分类算法。 所谓的k最近邻,就是指最接近的k个邻居(数据),即每个样本都可以由它的K个邻居来表达。 step.2---计算未知样本和每个训练样本的距离dist step.3---得到目前K个最临近样本中的最大距离maxdist step.4---如果dist小于maxdist,则将该训练样本作为K-最近邻样本 step.5---重复步骤2、3、4,直到未知样本和所有训练样本的距离都算完 step.6---统计K-最近邻样本中每个类标号出现的次数 step.7---选择出现频率最大的类标号作为未知样本的类标号 KNeighborsClassifier #对数据进行标准化处理 ss=StandardScaler() X_train=ss.fit_transform(X_train) X_test=ss.transform(X_test) #使用K近邻分类器对测试数据进行类别预测

    1.2K30发布于 2018-08-22
  • 来自专栏mantou大数据

    K-近邻算法

    K-近邻算法概述(k-Nearest Neighbor,KNN) K-近邻算法采用测量不同的特征值之间的距离方法进行分类。 4.训练算法:此步骤不适用与K-近邻算法 5.测试算法:计算错误率。 6.使用算法:首先需要输入样本数据和结构化的输出结果,然后运行k-近邻算法判定输入数据分别属于哪个分类,最后应用对计算出的分类执行后续的处理。 2. 准备数据集 在构造完整的k-近邻算法之前,我们还需要编写一些基本的通用函数,新建KNN.py文件,新增以下代码: #! ---- [1]KNN维基百科: https://zh.wikipedia.org/wiki/%E6%9C%80%E8%BF%91%E9%84%B0%E5%B1%85%E6%B3%95

    2K50发布于 2018-04-16
  • 来自专栏人工智能

    初步了解K近邻

    解决方法:k-近邻算法的做法如下: (1)取一个值k=3(k值后面介绍,现在可以理解为算法的使用者根据经验取的最优值) (2)在所有的点中找到距离绿色点最近的三个点 (3)让最近的点所属的类别进行投票 总结一下  ✒️✒️K-近邻算法属于哪类算法? ❤️‍❤️‍scikit-learn 中实现归一化的 API:  注意我们整个机器学习的环境需要很多库的帮助,具体我们可以去搜索页面搜索“Anaconda安装教程”去配置我们的编译环境 from sklearn.preprocessing

    40010编辑于 2024-07-30
  • 来自专栏数据挖掘

    KNN近邻算法

    K近邻(KNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。 -- 邻近算法 百度百科 KNN近邻算法思想 根据上文 K-means 算法分类,可以将一堆 毫无次序 的样本分成N个簇,如下: ? 黄色的四边形 周围的3个点为:K、M、U,就可以判断 黄色的四边形 属于红色簇 当K=4时,直观看出 黄色的四边形 周围的3个点为:K、M、U、W,无法判断 黄色的四边形 属于哪个簇,因此不能为偶数 当K=5时 ,直观看出 黄色的四边形 周围的3个点为:K、M、U、W、Z,就可以判断 黄色的四边形 属于绿色簇 KNN近邻算法就是以一定量的训练样本,来对其他未知样本进行分类,分类的标准和选取的K值有很大关系 KNN 近邻算法实现 假设训练样本为: clusters = { 'cluster2': {'H': {'y': 25, 'x': 27}, 'F': {'y': 30, 'x': 36}, 'G':

    1.3K40发布于 2019-07-02
领券