ML之kNN:k最近邻kNN算法的简介、应用、经典案例之详细攻略(一)

简介: ML之kNN:k最近邻kNN算法的简介、应用、经典案例之详细攻略

目录


kNN算法的简介


1、kNN思路过程


1.1、k的意义


1.2、kNN求最近距离案例解释原理—通过实际案例,探究kNN思路过程


2、K 近邻算法的三要素


k最近邻kNN算法的应用


1、kNN代码解读


k最近邻kNN算法的经典案例


1、基础案例




kNN算法的简介


     邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。


     kNN算法的核心思想:如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。


该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。 kNN方法在类别决策时,只与极少量的相邻样本有关。

由于kNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,kNN方法较其他方法更为适合。

image.png


     kNN算法不仅可以用于分类,还可以用于回归。通过找出一个样本的k个最近邻居,将这些邻居的属性的平均值赋给该样本,就可以得到该样本的属性。如下图是kNN算法中,k等于不同值时的算法分类结果。

     简单来说,kNN可以看成:有那么一堆你已经知道分类的数据,然后当一个新数据进入的时候,就开始跟训练数据里的每个点求距离,然后选择离这个训练数据最近的k个点,看看这几个点属于什么类型,然后用少数服从多数的原则,给新数据归类。


1、kNN思路过程


1.1、k的意义


image.png



1.2、kNN求最近距离案例解释原理—通过实际案例,探究kNN思路过程


  共有22图片→label属于[0,21],每一个label对应一个长度距离,最后预测encodings中,一张图片中的两个目标


image.png

knn_clf.kneighbors())

(array([[0.30532235, 0.31116033],

      [0.32661427, 0.33672689],

      [0.23773344, 0.32330168],

      [0.23773344, 0.31498658],

      [0.33672689, 0.33821827],

      [0.38318684, 0.40261368],

      [0.36961207, 0.37032072],

      [0.30532235, 0.32875857],

      [0.31116033, 0.31498658],

      [0.34639613, 0.37008633],

      [0.34639613, 0.38417308],

      [0.38043224, 0.40495343],

      [0.37008633, 0.38417308],

      [0.36410526, 0.38557585],

      [0.40495343, 0.42797409],

      [0.36410526, 0.40118199],

      [0.31723113, 0.340506  ],

      [0.37033616, 0.37823567],

      [0.32446263, 0.33810974],

      [0.31723113, 0.32446263],

      [0.33810974, 0.37878755],

      [0.340506  , 0.3755613 ]]),

array([[ 7,  8],

      [ 0,  4],

      [ 3,  8],

      [ 2,  8],

      [ 1,  3],

      [ 1,  8],

      [ 4,  7],

      [ 0,  8],

      [ 0,  3],

      [10, 12],

      [ 9, 12],

      [ 9, 14],

      [ 9, 10],

      [15,  9],

      [11, 10],

      [13, 12],

      [19, 21],

      [19, 21],

      [19, 20],

      [16, 18],

      [18, 16],

      [16, 19]], dtype=int64))

knn_clf.kneighbors(encodings, n_neighbors=1)

(array([[0.33233257],[0.31491284]]),

array([[20],[12]], dtype=int64))

 


相关文章
|
8月前
|
存储 监控 JavaScript
基于布隆过滤器的 Node.js 算法在局域网电脑桌面监控设备快速校验中的应用研究
本文探讨了布隆过滤器在局域网电脑桌面监控中的应用,分析其高效空间利用率、快速查询性能及动态扩容优势,并设计了基于MAC地址的校验模型,提供Node.js实现代码,适用于设备准入控制与重复数据过滤场景。
287 0
|
7月前
|
运维 监控 JavaScript
基于 Node.js 图结构的局域网设备拓扑分析算法在局域网内监控软件中的应用研究
本文探讨图结构在局域网监控系统中的应用,通过Node.js实现设备拓扑建模、路径分析与故障定位,提升网络可视化、可追溯性与运维效率,结合模拟实验验证其高效性与准确性。
390 3
|
7月前
|
机器学习/深度学习 资源调度 算法
遗传算法模型深度解析与实战应用
摘要 遗传算法(GA)作为一种受生物进化启发的优化算法,在复杂问题求解中展现出独特优势。本文系统介绍了GA的核心理论、实现细节和应用经验。算法通过模拟自然选择机制,利用选择、交叉、变异三大操作在解空间中进行全局搜索。与梯度下降等传统方法相比,GA不依赖目标函数的连续性或可微性,特别适合处理离散优化、多目标优化等复杂问题。文中详细阐述了染色体编码、适应度函数设计、遗传操作实现等关键技术,并提供了Python代码实现示例。实践表明,GA的成功应用关键在于平衡探索与开发,通过精心调参维持种群多样性同时确保收敛效率
|
7月前
|
机器学习/深度学习 边缘计算 人工智能
粒子群算法模型深度解析与实战应用
蒋星熠Jaxonic是一位深耕智能优化算法领域多年的技术探索者,专注于粒子群优化(PSO)算法的研究与应用。他深入剖析了PSO的数学模型、核心公式及实现方法,并通过大量实践验证了其在神经网络优化、工程设计等复杂问题上的卓越性能。本文全面展示了PSO的理论基础、改进策略与前沿发展方向,为读者提供了一份详尽的技术指南。
粒子群算法模型深度解析与实战应用
|
7月前
|
机器学习/深度学习 算法 安全
小场景大市场:猫狗识别算法在宠物智能设备中的应用
将猫狗识别算法应用于宠物智能设备,是AIoT领域的重要垂直场景。本文从核心技术、应用场景、挑战与趋势四个方面,全面解析这一融合算法、硬件与用户体验的系统工程。
614 0
|
9月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习模型、算法与应用的全方位解析
深度学习,作为人工智能(AI)的一个重要分支,已经在多个领域产生了革命性的影响。从图像识别到自然语言处理,从语音识别到自动驾驶,深度学习无处不在。本篇博客将深入探讨深度学习的模型、算法及其在各个领域的应用。
1582 3
|
9月前
|
机器学习/深度学习 人工智能 算法
AI-Compass 强化学习模块:理论到实战完整RL技术生态,涵盖10+主流框架、多智能体算法、游戏AI与金融量化应用
AI-Compass 强化学习模块:理论到实战完整RL技术生态,涵盖10+主流框架、多智能体算法、游戏AI与金融量化应用
|
9月前
|
存储 监控 安全
企业上网监控系统中红黑树数据结构的 Python 算法实现与应用研究
企业上网监控系统需高效处理海量数据,传统数据结构存在性能瓶颈。红黑树通过自平衡机制,确保查找、插入、删除操作的时间复杂度稳定在 O(log n),适用于网络记录存储、设备信息维护及安全事件排序等场景。本文分析红黑树的理论基础、应用场景及 Python 实现,并探讨其在企业监控系统中的实践价值,提升系统性能与稳定性。
513 1
|
8月前
|
算法 数据可视化
matlab版本粒子群算法(PSO)在路径规划中的应用
matlab版本粒子群算法(PSO)在路径规划中的应用
|
9月前
|
存储 监控 算法
公司员工泄密防护体系中跳表数据结构及其 Go 语言算法的应用研究
在数字化办公中,企业面临员工泄密风险。本文探讨使用跳表(Skip List)数据结构优化泄密防护系统,提升敏感数据监测效率。跳表以其高效的动态数据处理能力,为企业信息安全管理提供了可靠技术支持。
180 0

热门文章

最新文章