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 |

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

被折叠的 条评论
为什么被折叠?



