一文详解K-NN近邻算法详解

0x01 K近邻算法概述

在统计学中,K近邻算法(K-NN)是一种非参数监督学习方法,最初由Evelyn Fix和Joseph Hodges在 1951 年开发,后来由Thomas Cover扩展。

K最近邻(K-NN)算法是一种数据分类方法,用于根据最接近它的数据点所属的组来估计数据点将成为一个分类或另一个分类的可能性。K近邻算法用于分类和回归,是一种监督机器学习算法,在这两种情况下,输入都由数据集中的K个最接近的训练示例组成。输出取决于K-NN 是用于分类还是回归:

  • 在 K-NN 分类中,输出是一个类成员。对象通过其相临节点的多次投票进行分类,对象被分配到其K个最近相临节点中最常见的类别(K是一个正整数,通常很小)。
    如果K = 1,则对象被简单地分配给该单个最近相临节点的类。
  • 在K-NN 回归中,输出是对象的属性值。该值是K个最近邻值的平均值。

Addr:https://upload.wiKimedia.org/wiKipedia/commons/5/52/Map1NN.png

K-NN 是一种分类类型,其中函数仅在局部近似,并且可以看出来,K-NN算法不需要训练。对于分类和回归,一个有用的技术可以是为相临节点的贡献分配权重,以便更近的相临节点比更远的相临节点对平均值的贡献更大。例如,一个常见的加权方案包括给每个相临节点一个 1/ d的权重,其中d是到相临节点的距离。

举个最简单的理解例子:
有两种颜色的球,蓝色和红色,为了确定黑色球A是属于蓝色球类还是红色球类,算法会根据A球附近球的状态进行判断,如果附近大多数的球为红色,则很大概率将A球归属于红色球类。

再举一个例子:
例如,对点X进行分类时,需要对w1,w2,w3进行比较,计算一定距离内的离Xu最近的k个点的类别,通过最近的k个点的类别来确定Xu点的类别。

Addr:Energies | Free Full-Text | Application of the Weighted K-Nearest Neighbor Algorithm for Short-Term Load Forecasting

0x02 K近邻算法

训练样本是多维特征空间中的向量,每个向量都有一个类标签。该算法的训练阶段仅包括存储训练样本的特征向量和类标签。

在分类阶段,K是用户定义的常数,未标记的向量(查询或测试点)通过分配最接近该查询点的K个训练样本中最频繁的标签来分类。

利用欧几里得方法进行连续变量的常用距离的度量,利用重叠度量进行离散变量的常用距离的度量;与样本集中的每个属性一起用作度量,使用大边距近邻或邻域分析等算法学习距离度量,提高K近邻算法的分类精度。

存在的问题

频繁出现的类别可能会影响其他类别的预测,例如某个类别频繁出现,往往会主导新示例的预测,出现类别的结果向某一侧倾斜,出现多数选择某个类别的情况。对不同的分类加权可以解决这一问题,或通过抽象表示数据。

较大的K值会降低不必要的噪声对分类的影响,但与此同时会使分类的类别差异不明显,K-NN 算法的准确性可能会因噪声或不相关特征的存在而严重降低,或者如果特征尺度与其重要性不一致。

0x03 抽象工作原理

K-NN 执行投票机制来确定不知道归属的类别,附近的元素的不同类别可以理解成投票机制,拥有多数票的类别将大概率归属此类别。

K的取值例如:如果 K 的值等于 1,那么我们将仅使用最近的类别来确定数据点的类别。如果 K 的值等于 10,那么我们将使用最近的 10 个邻居,以此类推。

0x04 应用领域

  • 信用评级: KNN 算法通过将个人与具有相似特征的信用评级进行比较来帮助确定个人的信用评级。

  • 贷款审批:与信用评级类似,K-NN算法有助于通过将个人特征与相似个人进行比较来识别更有可能拖欠贷款的个人。

  • 数据预处理:数据集可能有许多缺失值。K-NN 算法用于估计缺失值的称为缺失数据插补的过程。

  • 模式识别: K-NN 算法识别模式的能力创造了广泛的应用。例如,它有助于检测信用卡使用模式并发现异常行为。

  • 股票价格预测:由于 K-NN 算法具有预测未知实体价值的能力,因此可用于根据历史数据预测股票的未来价值。

  • 推荐系统:由于 K-KNN 可以帮助找到具有相似特征的用户,因此可以在推荐系统中使用。例如,它可以用于在线视频流媒体平台,通过分析相似用户观看的内容来建议用户更有可能观看的内容。

  • 计算机视觉:K-NN算法用于图像分类。由于它能够对相似的数据点进行分组,例如将猫和狗归为不同的类别,因此它在多种计算机视觉应用中非常有用。

0x05 优缺点

K-NN优点:

  • 惰性学习易于理解且易于实施
  • 可用于分类和回归多重问题
  • 它是非线性数据的理想选择

K-NN缺点:

  • 在计算上是昂贵且耗时
  • 硬件上需要高内存存储
  • 需要确定K的值,K的值越高,预测越慢
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ORB-SLAM3是一个基于ORB-SLAM2和ORB-SLAM-VI的系统,它可以在纯视觉或者视觉惯导的系统中鲁棒地运行。它支持在单目、双目和RGB-D相机上利用针孔或者鱼眼模型进行SLAM(Simultaneous Localization and Mapping)任务。ORB-SLAM3是对之前版本的改进和扩展,在2015年提出的ORB-SLAM首次引入了特征点描述子ORB(Oriented FAST and Rotated BRIEF),2017年提出的ORB-SLAM2在此基础上进一步改进了定位和地图重建的性能,还引入了闭环检测和重定位功能。ORB-SLAM-VI在ORB-SLAM2的基础上进一步增加了惯性测量单元(IMU)的支持。而ORB-SLAM3则在ORB-SLAM2和ORB-SLAM-VI的基础上进行了更多的改进和优化。具体来说,ORB-SLAM3引入了新的局部地图表示方法,采用了更强大的特征点描述子SuperPoint和更快速的特征点检测器SuperGlue,提升了系统的定位和重建性能。此外,ORB-SLAM3还引入了新的优化方法,提高了系统的鲁棒性和实时性。整体上,ORB-SLAM3在之前版本的基础上进行了多方面的改进和优化,使得系统在各种不同场景和设备上都能更加可靠地进行SLAM任务。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [一文详解ORB-SLAM3](https://blog.csdn.net/qq_29462849/article/details/118159468)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [ORB-SLAM3技术详解(1)简介与论文解读](https://blog.csdn.net/hhaowang/article/details/117318737)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lmn_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值