位置: IT常识 - 正文

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

编辑:rootadmin
【机器学习】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生命周期钩子函数)

  • 魅族18s有无线充电吗(魅族18s无线充电哪里开启)

    魅族18s有无线充电吗(魅族18s无线充电哪里开启)

  • 苹果状态栏怎么添加东西(苹果状态栏怎么更改样式)

    苹果状态栏怎么添加东西(苹果状态栏怎么更改样式)

  • 淘宝退款到花呗怎么查询到账(淘宝退款到花呗,花呗已经付清,怎么办)

    淘宝退款到花呗怎么查询到账(淘宝退款到花呗,花呗已经付清,怎么办)

  • 抖音怎么设置不让别人下载我视频(抖音怎么设置不让别人看我关注的人)

    抖音怎么设置不让别人下载我视频(抖音怎么设置不让别人看我关注的人)

  • 小米屏幕碎了再买碎屏险(小米屏幕碎了再修多少钱)

    小米屏幕碎了再买碎屏险(小米屏幕碎了再修多少钱)

  • iphone视频怎么重命名(iphone视频怎么重复播放)

    iphone视频怎么重命名(iphone视频怎么重复播放)

  • 快手怎么进入个人中心(快手怎么进入个性化设置)

    快手怎么进入个人中心(快手怎么进入个性化设置)

  • 华为售后可以随时去贴膜吗(华为售后可以随时换屏吗)

    华为售后可以随时去贴膜吗(华为售后可以随时换屏吗)

  • 恢复出厂设置对设备有什么影响(恢复出厂设置对手机有伤害吗)

    恢复出厂设置对设备有什么影响(恢复出厂设置对手机有伤害吗)

  • 个人在唯品会怎么开店(唯品会个人卖家)

    个人在唯品会怎么开店(唯品会个人卖家)

  • 按住什么键可以选择多张不连续的幻灯片(按住什么键可以绘制正方形)

    按住什么键可以选择多张不连续的幻灯片(按住什么键可以绘制正方形)

  • mate30什么时候上市

    mate30什么时候上市

  • iPhone11pro怎么取消应用上的红点(苹果11pro max怎么把卡取出来)

    iPhone11pro怎么取消应用上的红点(苹果11pro max怎么把卡取出来)

  • iphone有限保修是什么意思(iphone有限保修是免费的吗)

    iphone有限保修是什么意思(iphone有限保修是免费的吗)

  • 苹果11怎么显示网速(苹果11怎么显示电量百分比)

    苹果11怎么显示网速(苹果11怎么显示电量百分比)

  • 苹果时间规划局怎么设置生日倒计时(苹果时间规划局怎么设置)

    苹果时间规划局怎么设置生日倒计时(苹果时间规划局怎么设置)

  • 什么是智慧屏电视(智慧屏啥意思)

    什么是智慧屏电视(智慧屏啥意思)

  • factory settings什么意思

    factory settings什么意思

  • 怎么隐藏号码打电话(怎么隐藏号码打举报电话)

    怎么隐藏号码打电话(怎么隐藏号码打举报电话)

  • 三星乐盖a80防水吗(三星盖乐世a80)

    三星乐盖a80防水吗(三星盖乐世a80)

  • airpod充电要把耳机放进去吗(给airpods充电要把耳机拿出来吗)

    airpod充电要把耳机放进去吗(给airpods充电要把耳机拿出来吗)

  • 华为黑白模式怎么关闭(华为黑白模式怎么设置)

    华为黑白模式怎么关闭(华为黑白模式怎么设置)

  • HTML创意动画代码(html制作动画代码)

    HTML创意动画代码(html制作动画代码)

  • 小规模纳税人销售额超过500万
  • 季度所得税费用如何计提
  • 分公司注销需要总公司法人实名确认吗
  • 现金形式发放的福利需要扣税吗
  • 存货的计价方法有哪些,具体内容是什么
  • 开票方没缴税咋办
  • 预付房租的会计科目
  • 按年征收的基金有哪些
  • 企业营改增后的会计处理有何变化
  • 加油站销售加油卡是否征收增值税
  • 发票抵税是指哪些内容
  • 发票抬头写个人有效吗
  • 物业公司收入多少钱
  • 电子承兑汇票怎么打印出来
  • 原材料明细账目
  • 商品盘点溢余短缺的核算方法有哪些?
  • 基建管理费如何进行结转?
  • 公司注册资金抽逃
  • 贸易公司买进卖出
  • 电脑桌面点击鼠标右键就闪退
  • windows7远程桌面连接在哪里
  • 公司之间往来借款利息怎么记账
  • 如何用u盘装系统知乎
  • 组成计税价格用来算什么
  • 开办费的账务处理实例
  • 贷款损失会计处理
  • 非货币性资产对外投资企业所得税例题
  • 无形资产摊销的会计及账务处理
  • 公允价值变动损益属于什么科目
  • php对接mysql
  • 企业应付账款的会计分录
  • php 并发 解决方案
  • vue3+ts+vite
  • 代开增值税额与实际缴款额差一分钱如何入账
  • web前后端连接
  • 计算机视觉项目文档
  • 重分类调整分录汇总表什么情况填写
  • 固定资产清理需要交企业所得税吗
  • 映射器可以定义参数类型
  • MySQL发生系统错误2和5
  • mongodb的索引种类
  • mongodb exception: $concat only supports strings, not NumberInt32解决办法
  • 固定资产净残值账务处理
  • 上市公司收购其他股票
  • 金融商品转让如何确定销售额
  • 营改增后建筑企业如何正确开具发票
  • 医疗机构销售药品是否征收增值税
  • sql命令语句
  • 解决问题
  • 企业所得税征收方式有哪些?
  • 应收预收应付预付科目怎么合并
  • 固定资产清理时增值税怎么处理
  • 现金折扣怎么做账
  • 当月发生的费用下月支付
  • 成本结转怎么做分录
  • 发出存货的计价方法一经确定,不得随意改变
  • 企业商品销售收入确认条件
  • 研发一个月多少钱
  • 寻找sql注入漏洞存在哪几个关键点
  • mac显示器颜色不一致
  • ubuntu命令行浏览网页
  • regsvc32.exe - regsvc32是什么进程 有什么用
  • 深度技术win7光盘安装教程
  • ixapplet.exe - ixapplet是什么进程 有何作用
  • 怎么禁止电脑qq自动启动
  • nodejs制作网站
  • android中数据存储
  • nodejs怎么启动服务
  • Node.js中的全局对象有
  • jquery的css样式
  • 简述JavaScript中全局变量与局部变量的作用域
  • javascript sort方法排序
  • unity异步加载场景
  • jquery基础知识梳理
  • jquery自带的弹出框
  • python调用ch
  • 北京环球影城服装
  • 广东省电子税务局官网登录入口
  • 税务局追缴社保流程及办理期限
  • 税收优惠政策有哪些企业
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设