KNN算法原理(python代码实现)

本文介绍了K-近邻算法(KNN)的基本原理,包括其优点和缺点,以及适用的数据类型。通过一个身高性别分类的例子,详细阐述了KNN的分类过程,如计算样本间的欧氏距离。此外,还提供了KNN算法的Python代码实现,并展示了运行结果,误差率为0.011628。参考书籍和scikit-learn库的KNeighborsClassifier也被提及。

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

kNN(k-nearest neighbor algorithm)算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。简单地说,K-近邻算法采用测量不同特征值之间的距离方法进行分类。
- 优点:精度高、对异常值不敏感、无数据输入假定。
- 缺点:计算复杂度高、空间复杂度高。
- 适用数据范围:数值型和标称型。

举个简单的例子,一群男生和一群女生,我们知道他们的身高和性别。
如下表格:

身高 性别
165
166
169
175
178
180
190
179 未知

这里有8位同学,已知所有人的身高,其中7个人的性别,还有位同学只知道身高,那么这位同学可能是男生还是女生。

下面我们利用KNN算法来分类:
1. 求这位同学跟其他同学的身高差;
2. 设定一个K值,选择跟这位同学身高相差最小的K个同学;
3. 在这K个同学中,哪种性别的人多,就认为这位同学属于哪种性别。

举例:设K为5

计算这位同学与其他同学的身高差的绝对值:如下

身高差的绝对值 性别
14
13
10
4
1
1
11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值