KNN/K近邻/K-nearest neighbor 算法

本文深入探讨了KNN(K-Nearest Neighbors)算法,包括基本原理、投票分类方法及超参数K的影响。解释了K为奇数的重要性,以避免分类时出现平局,并讨论了K值选择对模型精度的平衡。同时,介绍了欧几里得距离在KNN中的作用,以及使用元组存储数据的优势。通过对超参数K的探讨,强调了其在模型泛化能力和近邻影响权衡中的关键角色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本质:人以类聚,物以群分,趣味相同的人总是会在一起
一,k为1即只寻找离它最近的情况
这个时候它的公式就是我们初中学的两点距离公式
其原理就是勾股定理,这个很简单就不推导了
在这里插入图片描述

二,按民主的方式,投票分
假定目前只有0与1两个类别,有个要分类的点A
直接划分比如K=3,那么取离A距离最近的三个,好此时有2个1类的,1个0类的
2>1,那么此时就判断A为1类

三,KNN关键点(超参数/Hyperparameter)的探讨

关于超参数

定义

在机器学习的上下文中,超参数是在开始学习过程之前设置值的参数。 相反,其他参数的值通过训练得出。
超参数:

定义关于模型的更高层次的概念,如复杂性或学习能力。
不能直接从标准模型培训过程中的数据中学习,需要预先定义。
可以通过设置不同的值,训练不同的模型和选择更好的测试值来决定

超参数的一些示例:

树的数量或树的深度
矩阵分解中潜在因素的数量
学习率(多种模式)
深层神经网络隐藏层数
k均值聚类中的簇数

那么由此,我们就来想下
这个超参数K要满足什么条件
1,K为奇数,只有是奇数才能保证投票中不会出现各类型数量相等的情况
2k的大小,首先,k如果太小,会影响模型的精度,单纯的来说,如果我们要判断一个动物是不是猫,那么如果我们只用眼睛,鼻子,嘴巴判断,那大象也是有眼睛鼻子嘴巴的,那么如果K太大,会冲淡周围的数据对最终种类判断的影响,比如A刚刚做推销,那么知道A是推销员的只有他已经推销过的少数几个人,但是大多数人不知道。

四,欧几里得(.Euclidean)距离

欧几里得度量(euclidean metric)(也称欧氏距离)是一个通常采用的距离定义,指在m维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)。在二维和三维空间中的欧氏距离就是两点之间的实际距离

公式:
在这里插入图片描述

那么在知道距离之后要怎么分类呢

1需要输入变量K(选取周边多少个数据/特征进行判断)
2排序,选前面K个
3用元组(tuple)进行储存

用 Tuple 的好处

Tuple 比 list 操作速度快。如果您定义了一个值的常量集,并且唯一要用它做的是不断地遍历它,请使用 tuple 代替 list。

如果对不需要修改的数据进行 “写保护”,可以使代码更安全。使用 tuple 而不是 list 如同拥有一个隐含的 assert 语句,说明这一数据是常量。如果必须要改变这些值,则需要执行 tuple 到 list 的转换。

简单来说就是抽走之后不用改变索引

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丰。。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值