位置: IT常识 - 正文

【机器学习】KNN算法及K值的选取

发布时间:2024-01-17
【机器学习】KNN算法及K值的选取

推荐整理分享【机器学习】KNN算法及K值的选取,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

KNN算法是有监督学习中的分类算法,它看起来和另一个机器学习算法K-means有点像(K-means是无监督学习算法),但却是有本质区别的。

KNN的原理就是:当预测一个新的值x的时候,根据它距离最近的K个点是什么类别,来判断x属于哪个类别。

图中绿色的点就是我们要预测的那个点,假设K=3。那么KNN算法就会找到与它距离最近的三个点(这里用圆圈把它圈起来了),看看哪种类别多一些,比如这个例子中是蓝色三角形多一些,新来的绿色点就归类到蓝三角了。

但是,当K=5的时候,判定就变成不一样了。这次变成红圆多一些,所以新来的绿点被归类成红圆。从这个例子中,我们就能看得出K的取值是很重要的。

KNN的两个核心点:K值的选取和点之间距离的计算方式

【机器学习】KNN算法及K值的选取

距离计算公式就不多说了,是欧氏距离:d(x,y):=∑i=1n(xi−yi)2d(x,y):=\sqrt{\sum_{i=1}^n(x_i-y_i)^2}d(x,y):=∑i=1n​(xi​−yi​)2​

(对于高维特征,曼哈顿距离(即p更低)更能避免维度灾难的影响,效果更优。欧几里得距离(次数更高)更能关注大差异较大的特征的情况)

最简单粗暴的就是将预测点与所有点距离进行计算,然后保存并排序,选出前面K个值看看哪些类别比较多。但其实也可以通过一些数据结构来辅助,比如最大堆

如何确定K值?答案是通过网格搜索,交叉验证(将样本数据按照一定比例,拆分出训练用的数据和验证用的数据,比如6:4拆分出部分训练数据和验证数据),从选取一个较小的K值开始,不断增加K的值,然后计算验证集合的方差,最终找到一个比较合适的K值。

有个反直觉的现象,K取值较小时,模型复杂度(容量)高,训练误差会减小,泛化能力减弱;K取值较大时,模型复杂度低,训练误差会增大,泛化能力有一定的提高。原因是K取值小的时候(如k=1),仅用较小的领域中的训练样本进行预测,模型拟合能力比较强,决策就是只要紧跟着最近的训练样本(邻居)的结果。但是,当训练集包含”噪声样本“时,模型也很容易受这些噪声样本的影响(如图 过拟合情况,噪声样本在哪个位置,决策边界就会画到哪),这样会增大"学习"的方差,也就是容易过拟合。这时,多听听其他邻居训练样本的观点就能尽量减少这些噪声的影响。K值取值太大时,情况相反,容易欠拟合。

KNN是一种非参的,惰性的算法模型:

非参的意思并不是说这个算法不需要参数,而是意味着这个模型不会对数据做出任何的假设,与之相对的是线性回归(我们总会假设线性回归是一条直线)。也就是说KNN建立的模型结构是根据数据来决定的,这也比较符合现实的情况,毕竟在现实中的情况往往与理论上的假设是不相符的。

此处的非参数似乎不太正确

惰性又是什么意思呢?想想看,同样是分类算法,逻辑回归需要先对数据进行大量训练,最后才会得到一个算法模型。而KNN算法却不需要,它没有明确的训练数据的过程,或者说这个过程很快。

KNN算法优点

算法简单直观,易于应用于回归及多分类任务对数据没有假设,准确度高,对异常点较不敏感由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此适用于类域的交叉或非线性可分的样本集。

KNN算法缺点

计算量大,尤其是样本量、特征数非常多的时候。另外KD树、球树之类的模型建立也需要大量的内存只与少量的k相邻样本有关,样本不平衡的时候,对稀有类别的预测准确率低使用懒散学习方法,导致预测时速度比起逻辑回归之类的算法慢。当要预测时,就临时进行 计算处理。需要计算待分样本与训练样本库中每一个样本的相似度,才能求得与 其最近的K个样本进行决策。与决策树等方法相比,KNN考虑不到不同的特征重要性,各个归一化的特征的影响都是相同的。相比决策树、逻辑回归模型,KNN模型可解释性弱一些差异性小,不太适合KNN集成进一步提高性能。
本文链接地址:https://www.jiuchutong.com/zhishi/298415.html 转载请保留说明!

上一篇:vue路由的安装和使用(vue的路由器)

下一篇:Vue生命周期钩子剖析(共12个钩子)(vue生命周期钩子函数)

  • 抖音怎么屏蔽一种类型的视频(抖音怎么屏蔽一类视频)

    抖音怎么屏蔽一种类型的视频(抖音怎么屏蔽一类视频)

  • 支付宝时光加速器能加速多长时间(支付宝时光加速器怎么获取)

    支付宝时光加速器能加速多长时间(支付宝时光加速器怎么获取)

  • opporeno2支持多少瓦的快充(opporeno2支持多少w)

    opporeno2支持多少瓦的快充(opporeno2支持多少w)

  • 苹果正方形的按钮在哪(苹果正方形的按钮怎么关闭)

    苹果正方形的按钮在哪(苹果正方形的按钮怎么关闭)

  • iphone11夜景模式怎么设置(iphone11夜景模式最长多少秒)

    iphone11夜景模式怎么设置(iphone11夜景模式最长多少秒)

  • 安卓手机和ipad怎么传文件(安卓手机和ipad之间怎么传文件)

    安卓手机和ipad怎么传文件(安卓手机和ipad之间怎么传文件)

  • 手机照片无缘无故没了(手机照片无缘无故没了苹果)

    手机照片无缘无故没了(手机照片无缘无故没了苹果)

  • 抖音本场点赞能换钱吗(抖音本场点赞是不是音浪)

    抖音本场点赞能换钱吗(抖音本场点赞是不是音浪)

  • 推特机器人验证怎么过(推特机器人验证手机号)

    推特机器人验证怎么过(推特机器人验证手机号)

  • 5g网络是不是很耗电(5g网络是不是很慢)

    5g网络是不是很耗电(5g网络是不是很慢)

  • 共享id能看到哪些东西(共享id会怎样)

    共享id能看到哪些东西(共享id会怎样)

  • 华为手机微信怎么设置深色模式(华为手机微信怎么设置密码锁)

    华为手机微信怎么设置深色模式(华为手机微信怎么设置密码锁)

  • 条件式转接开启是什么意思(什么是条件式转接)

    条件式转接开启是什么意思(什么是条件式转接)

  • 一个抖音小店可以绑定几个抖音号(一个抖音小店可以上架多少款产品)

    一个抖音小店可以绑定几个抖音号(一个抖音小店可以上架多少款产品)

  • 手机屏的分类与区别(手机屏分为几类)

    手机屏的分类与区别(手机屏分为几类)

  • 抖音账号被永久封怎么办(抖音账号被永久禁言能解除吗)

    抖音账号被永久封怎么办(抖音账号被永久禁言能解除吗)

  • oppoa11什么时候上市的(oppoa11什么时候升级coloros13)

    oppoa11什么时候上市的(oppoa11什么时候升级coloros13)

  • 天猫精灵cch和ccl区别(天猫精灵cch和cc7哪个好)

    天猫精灵cch和ccl区别(天猫精灵cch和cc7哪个好)

  • 抖音直播时如何放音乐(抖音直播时如何上架商品)

    抖音直播时如何放音乐(抖音直播时如何上架商品)

  • 时控开关怎么调时间(时控开关怎么调每天定时开关)

    时控开关怎么调时间(时控开关怎么调每天定时开关)

  • 激萌怎么添加外在音乐(激萌怎么添加好友)

    激萌怎么添加外在音乐(激萌怎么添加好友)

  • 拼多多拼单返现怎么领(拼多多拼单返现在哪里找怎么找不到)

    拼多多拼单返现怎么领(拼多多拼单返现在哪里找怎么找不到)

  • 滴滴司机能选乘客数量吗(滴滴司机可以选乘客吗)

    滴滴司机能选乘客数量吗(滴滴司机可以选乘客吗)

  • 怎么把文档转成文件(怎么把文档转成pdf格式的文件)

    怎么把文档转成文件(怎么把文档转成pdf格式的文件)

  • 印花税申报表计税依据怎么填
  • 附加税申报表怎么做
  • 工程施工科目有没有伙食费啊
  • 其他应付款为负数
  • 合同上怎么注明开具6%的含税普通发票
  • 以前减记存货价值的影响因素是什么意思
  • 固定资产折旧的会计处理
  • 国家对工资发放的规定
  • 资产负债表其他流动资产包括什么
  • 抵账房好不好
  • 农产品增值税抵扣新政策2021
  • 现金比率一般多少
  • 养老保险缴纳比例是固定的吗
  • 纳税期限与申报的关系
  • 特许权使用费所得包括
  • 核销的方式
  • 公司前期没有收入开支怎么记账
  • 价内税和价外税名词解释
  • 房地产开发企业会计科目
  • 建筑行业外经证办理步骤
  • 其他应付款和其他应交款区别
  • 工资税后补扣是什么意思
  • 简易征收做账
  • php语言之mysql操作
  • 坏账的税务处理方法
  • 劳务报酬个人所得税税率表2023
  • 电力系统常用的接线有哪几种
  • 俄勒冈州地理之歌
  • 小程序开发必备的东西有哪些
  • redis php实例
  • 企业会计准则季度怎么填
  • php如何判断用户是否在线
  • 增值税进项税如何申报
  • 支付版权使用费怎么记账
  • 差额征税的扣除额是填什么钱
  • 织梦如何使用
  • 织梦官网
  • 停工期间工资支付标准
  • 海关报关单位注销操作规程
  • 税款所属期止
  • mysql的启动方法(windows 平台)
  • 基本户收到款不入账
  • 政府补助的分类包括
  • 工程外经证预缴税款计税方法
  • 劳务公司开出的劳务票需要申报个税吗
  • 电子承兑 背书
  • 固定资产计提折旧表
  • 主营业务收入的概念
  • 银行取备用金最多能取多少
  • 收到合同后的整个流程
  • 小规模开具的1%专票 一般纳税人抵扣
  • 上年未计提所得税,本年怎么做分录
  • 营业外支出科目核算内容
  • 弱电工程属于什么行业
  • 产权转移书据纳税义务时间
  • 收到的普通发票被对方作废
  • 发票抬头注意事项
  • 企业经营规模小怎么办
  • macos装mysql
  • 数据库中多表连接的方式
  • mysql存文章的字段设置为多大?
  • freebsd12安装图形界面
  • rsync服务端配置
  • win8升级win10补丁
  • psdrvcheck.exe - psdrvcheck是什么进程 有什么用
  • explore是什么文件
  • 用jQuery实现可输入多选下拉组合框实例代码
  • js类继承的几种方式
  • 求链表内节点的指针
  • shell字符串操作
  • bootstrap基础教程书籍
  • android动画种类
  • 网页加载多个js文件冲突
  • 夜间模式图
  • javascript编程基础
  • 安徽省电子发票开具流程
  • 陕西省地方税务局公告2017年第2号
  • 青岛已开通几条地铁线路
  • 博兴公安局局长
  • 郑州房子契税退税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号