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))

 


相关文章
|
3月前
|
存储 分布式计算 算法
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
80 0
|
3月前
|
存储 算法 搜索推荐
这些算法在实际应用中有哪些具体案例呢
【10月更文挑战第19天】这些算法在实际应用中有哪些具体案例呢
69 1
|
3月前
|
算法 数据可视化 新制造
Threejs路径规划_基于A*算法案例完整版
这篇文章详细介绍了如何在Three.js中完整实现基于A*算法的路径规划案例,包括网格构建、路径寻找算法的实现以及路径可视化展示等方面的内容。
105 0
Threejs路径规划_基于A*算法案例完整版
|
3月前
|
机器学习/深度学习 算法
机器学习入门(三):K近邻算法原理 | KNN算法原理
机器学习入门(三):K近邻算法原理 | KNN算法原理
|
3月前
|
机器学习/深度学习 算法 API
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
|
3月前
|
存储 算法 机器人
Threejs路径规划_基于A*算法案例V2
这篇文章详细介绍了如何在Three.js中使用A*算法进行高效的路径规划,并通过三维物理电路的实例演示了路径计算和优化的过程。
96 0
|
14天前
|
机器学习/深度学习 算法
基于改进遗传优化的BP神经网络金融序列预测算法matlab仿真
本项目基于改进遗传优化的BP神经网络进行金融序列预测,使用MATLAB2022A实现。通过对比BP神经网络、遗传优化BP神经网络及改进遗传优化BP神经网络,展示了三者的误差和预测曲线差异。核心程序结合遗传算法(GA)与BP神经网络,利用GA优化BP网络的初始权重和阈值,提高预测精度。GA通过选择、交叉、变异操作迭代优化,防止局部收敛,增强模型对金融市场复杂性和不确定性的适应能力。
146 80
|
2天前
|
机器学习/深度学习 数据采集 算法
基于GA遗传优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB2022a实现时间序列预测,采用CNN-GRU-SAM网络结构。卷积层提取局部特征,GRU层处理长期依赖,自注意力机制捕捉全局特征。完整代码含中文注释和操作视频,运行效果无水印展示。算法通过数据归一化、种群初始化、适应度计算、个体更新等步骤优化网络参数,最终输出预测结果。适用于金融市场、气象预报等领域。
基于GA遗传优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
|
2天前
|
算法
基于龙格库塔算法的锅炉单相受热管建模与matlab数值仿真
本设计基于龙格库塔算法对锅炉单相受热管进行建模与MATLAB数值仿真,简化为喷水减温器和末级过热器组合,考虑均匀传热及静态烟气处理。使用MATLAB2022A版本运行,展示自编与内置四阶龙格库塔法的精度对比及误差分析。模型涉及热传递和流体动力学原理,适用于优化锅炉效率。
|
1天前
|
算法 数据安全/隐私保护
室内障碍物射线追踪算法matlab模拟仿真
### 简介 本项目展示了室内障碍物射线追踪算法在无线通信中的应用。通过Matlab 2022a实现,包含完整程序运行效果(无水印),支持增加发射点和室内墙壁设置。核心代码配有详细中文注释及操作视频。该算法基于几何光学原理,模拟信号在复杂室内环境中的传播路径与强度,涵盖场景建模、射线发射、传播及接收点场强计算等步骤,为无线网络规划提供重要依据。

热门文章

最新文章