KNN算法总结

概述

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

KNN是一个基本的分类和回归的算法,它是属于监督学习中分类方法的一种。

KNN算法流程

  1. 给定训练集和测试集,根据训练集来进行模型的构建
  2. 在测试集中依次选取每一个元素,选取距离最近的K个元素
  3. 统计K个元素中每个类别的数量,将此元素归类为数量最多的类别

KNN算法核心思想

KNN算法是一个分类算法,一般常用于分类或回归问题。当预测一个样本应该归为哪个类时,根据它距离最近的 K 个样本点是什么类别来判断该新样本属于哪个类别(多数投票)。

绿色的点是新加入的点,当K=3时,选择距离最近的3个点,其中有2个蓝色,1个红色,则会被分类为蓝色,

当K=5时,选择距离最近的5个点,其中有3个红色,2个蓝色,则会被分类为红色

其中,主要考虑的两个问题分别是K值选取和距离计算

KNN中需要考虑的三个问题

K值选取

显然,K值并不是越小越好也不是越大越好,而是差不多才好,
如果K值太小,分类的错误率会比较高,
如果K值太大,那么分类就会一直向其中某一类靠,
所以,K值取一个合适的值是最重要的,这个值怎么选取是我们需要思考的,

使用交叉验证来确定K值选取

交叉验证:在给定的建模样本中,拿出大部分样本进行建模型,留小部分样本用刚建立的模型进行预报,并求这小部分样本的预报误差,记录它们的平方加和。
也就是说,在给定的数据集中,拿出大部分比例的数据进行模型的构建,保留小部分的数据进行模型的验证,来对错误率进行记录。

距离计算

KNN中,一般采用欧式距离或者曼哈顿距离来进行计算

欧氏距离算法

d ( x , y ) : = ( x 1 − y 1 ) 2 + ( x 2 − y 2 ) 2 + ⋯ + ( x n − y n ) 2 = ∑ i = 1 n ( x i − y i ) 2 d(x,y):=\sqrt{\left(x_1-y_1\right)^2+\left(x_2-y_2\right)^2+\cdots+\left(x_n-y_n\right)^2}=\sqrt{\sum_{i=1}^n\left(x_i-y_i\right)^2} d(x,y):=(x1y1)2+(x2y2)2++(xnyn)2 =i=1n(xiyi)2

曼哈顿距离算法

d ( x , y ) : = ∣ x 1 − x 2 ∣ + ⋯ + ∣ y n − y n ∣ d(x,y):=\mid x_{1}-x_{2}\mid+\cdots+\mid y_{n}-y_{n}| d(x,y):=∣x1x2++ynyn

欧式距离和曼哈顿距离都是闵可夫斯基距离,

闵可夫斯基距离

ρ ( A , B ) = ( ∑ i = 1 n ∣ a i − b i ∣ p ) 1 p \rho(A,B)=(\sum_{i=1}^n|a_i-b_i|^p)^{\frac1p} ρ(A,B)=(i=1naibip)p1

当p=1时,变成曼哈顿距离;

当p=2时,变成欧式距离;

当p趋于无穷时,变成切比雪夫距离;

决策规则

确定如何将新的未分类数据点分配到已知的类别中。这通常是通过投票机制实现的,一般为将新点的预测标签设置为最多数量的类别的标签。

KNN优缺点

优点:

  1. 算法逻辑简单。
  2. 很少的训练,或者说不需要训练。
  3. 无特定数据分布假设。不对数据分布作出假设,完全基于距离度量对样本特征进行提取
  4. 预测效果较好,容错能力强。对于异常值的处理能力较强,不易受异常值的影响
  5. 适用于多类别问题。既可以用于分类,也可以用于回归问题,且可以进行非线性分类;

缺点:

  1. 内存要求高。在进行预测时,需要存储所有的训练数据在内存中
  2. 计算成本高。当特征数较多时,计算的成本会很大
  3. K值选取重要。对于上文所说的K值选取如果不当,会出现很大的误差
  4. 样本不平衡问题。当某些类别的样本数量极不均匀时,KNN算法可能无法正确分类

KNN应用场景

图像分类:识别人脸、车牌等。

文本分类:垃圾邮件过滤、情感分析等。

推荐系统:根据用户的历史行为推荐商品、音乐等。

数据挖掘:寻找异常值、聚类等。

生物信息学:基因分类、蛋白质分类等。

财务分析:预测股票价格、评估信用风险等。

参考:
https://blog.csdn.net/m0_74405427/article/details/133714384
https://cloud.tencent.com/developer/techpedia/1686/11502
https://cloud.tencent.com/developer/article/1719993

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/475024.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

移动机器人的控制逻辑全解析。

你是否曾对那些在工厂中穿梭自如的移动机器人感到好奇?它们是如何准确无误地执行任务的?这一切都归功于移动机器人的控制逻辑!今天,就让我们深入探讨一下移动机器人控制逻辑的重点。 一、环境感知与建模技术是移动机器人实现自主导…

【鸿蒙系统学习笔记】开发工具安装

一、准备开发环境 1.1、安装IDE 鸿蒙应用开发需要使用配套的IDE——HUAWEI DevEco Studio。 DevEco Studio基于IntelliJ IDEA Community(IDEA社区版)构建,为鸿蒙应用提供了一站式开发环境,集成了开发、运行、调试以及发布应用的…

Springboot返回给前端的日期变成时间戳问题处理

问题: 解决方案 在对应的Entity类中,给对应属性添加JsonFormat​注解 ​JsonFormat​注解用于将Date日期格式化为指定格式的字符串。由于在序列化时间时是按照国际标准时间GMT进行格式化的,最后接受到的数据会早8个小时,所以应该…

Android下SF合成流程重学习之onMessageInvalidate

Android下SF合成流程重学习之onMessageInvalidate 引言 虽然看了很多关于Android Graphics图形栈的文章和博客,但是都没有形成自己的知识点。每次学习了,仅仅是学习了而已,没有形成自己的知识体系,这次趁着有时间,这次…

三种vcruntime140.dll丢失解决方法,有效解决vcruntime140.dll文件丢失

vcruntime140.dll作为一个动态链接库文件,具有重要的功能和用途。它是由Microsoft Visual C Redistributable软件包提供的一个重要组件,用于支持运行在Windows操作系统上的应当vcruntime140.dll文件丢失时,将会对计算机系统产生一系列的影响。…

央视龙年春晚沈腾马丽第八度联手,紧张到嘴瓢引发全场哄笑。

♥ 为方便您进行讨论和分享,同时也为能带给您不一样的参与感。请您在阅读本文之前,点击一下“关注”,非常感谢您的支持! 文 |猴哥聊娱乐 编 辑|徐 婷 校 对|侯欢庭 除夕夜,华灯初上,央视龙年春晚的舞台上…

达梦数据库——数据迁移sqlserver-dm报错问题整理

报错情况一:Sql server迁移达梦连接报错’驱动程序无法通过使用安全套接字Q层(SSL)加密与SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client preferencesITLS127‘ 原因:历史版本的SOL SERVER服务…

python中break和continue的用法

目录 continue:结束本次循环 break:终止最近的整个循环 跳出多重循环 continue:结束本次循环 s "python" for i in s:if i o:continueprint(i) 当i等于o时,结束整个循环,所以o和n都不打印出来 break&…

4核8G云服务器多少钱?价格汇总

4核8G云服务器多少钱一年?阿里云ECS服务器u1价格955.58元一年,腾讯云轻量4核8G12M带宽价格是646元15个月,阿腾云atengyun.com整理4核8G云服务器价格表,包括一年费用和1个月收费明细: 云服务器4核8G配置收费价格 阿里…

盲盒小程序开发

现如今,盲盒已经成为了市场上不可忽视的新型消费模式,并且也逐渐遍布在全球各地中。盲盒的种类商品也逐渐丰富完善,不在局限于性价比高的盲盒玩具、手办等,也发展到了美妆、电子、食品等行业,具有较大的实用性和收藏价…

leetcode:416.分割等和子集

解题思路: 转化为01背包问题,集合中每个元素只能用一次,看能不能凑出sum//2这个重量。(重量值价值值) dp含义:前重量j所获得的最大价值 递推公式:dp[j] max(dp[j],dp[j-numbers[i]] number…

几种SLAM算法跑出的效果比较

以下所有的SLAM算法均使用此辆ROS小车跑。 文章目录 1.Gmapping SLAM算法构建地图2.Hector SLAM算法构建地图3.Karto SLAM算法构建地图4.Cartographer SLAM算法构建地图5.深度摄像头的建图6.rtab-map(深度双目与激光雷达构建三维建图)7.ORB-SLAM8.无奖竞猜 1.Gmapping SLAM算法…