分类回归KNN算法整理

K近邻算法(KNN)是一种常用的分类和回归方法,它的基本思想是从训练集中寻找和输入样本最相似的k个样本,如果这k个样本中的大多数属于某一个类别,则输入的样本也属于这个类别。关于KNN算法,一个核心问题是:如何快速从数据集中找到和目标样本最接近的K个样本?比如,我在app上阅读了一篇文章,推荐系统就应当为我推送与这篇文章最相近的文章,数据库中所有文章是用向量表示的,所以我们要解决的问题就是“找到与这篇文章的向量最相近的几个向量”,然后把这些向量对应的文章推送出去。KNN算法的三要素:距离度量、k值的选择
摘要由CSDN通过智能技术生成

K近邻算法(KNN)是一种常用的分类和回归方法,它的基本思想是从训练集中寻找和输入样本最相似的k个样本,如果这k个样本中的大多数属于某一个类别,则输入的样本也属于这个类别。

关于KNN算法,一个核心问题是:如何快速从数据集中找到和目标样本最接近的K个样本?

比如,我在app上阅读了一篇文章,推荐系统就应当为我推送与这篇文章最相近的文章,数据库中所有文章是用向量表示的,所以我们要解决的问题就是“找到与这篇文章的向量最相近的几个向量”,然后把这些向量对应的文章推送出去。

KNN算法的三要素:距离度量、k值的选择和分类决策规则。其中机器学习领域常用的距离度量方法,有欧式距离、余弦距离、曼哈顿距离、dot内积等。

解决这个问题的方法有很多,KDTree,Annoy,HNSW等等。

1. HNSW

HNSW(Hierarchcal Navigable Small World graphs)是基于图存储的数据结构

NSW朴素构图算法:

  1. 向图中逐个插入点,插图一个全新点时,通过计算“友点”和待插入点的距离来判断下一个进入点是哪个点
  2. 查找到与这个全新点最近的m个点
  3. 连接全新点到m个点的连线

构建图的时候,理论上来说我们对所有的点做Delaunay三角剖分,然后添加一些随机的长边构建快速检索通道, 就构建了一个可导航的小世界网络。

由于构建Delaunay三角剖分的复杂度太高实际的代码实现过程中是通过节点随机插入来引入随机性,利用已有节点构建Delaunay边来引入同质性。

德劳内(Delaunay)三角剖

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值