编程语言
首页 > 编程语言> > 【机器学习】K近邻算法原理

【机器学习】K近邻算法原理

作者:互联网

一文详解,K近邻算法原理。码字不易,喜欢请点赞,谢谢!!!在这里插入图片描述
一、KNN简介
K近邻(k-NearestNeighbor)算法,简称KNN。KNN是数据挖掘中十分常用的算法,其原理简单。
KNN的思想就是,选取k个最邻近的点,这k个点属于哪类个数最多,则该点就属于哪类。
比如下图,当k=3k=3k=3时,测试点属于六边形类;而当k=5k=5k=5时,测试点属于正方形类。
在这里插入图片描述
二、KNN算法步骤

  1. 计算测试数据到每个训练数据的距离(一般采用欧氏距离)
  2. 按照距离从小到大排列
  3. 选取距离最小的k个点
  4. 统计这k个点在各个类别中的频率
  5. 选取k个点所在类别频率最高的作为测试数据的预测类别

注:三种常用距离计算方法

  1. 欧氏距离在这里插入图片描述
  2. 曼哈顿距离
    在这里插入图片描述
  3. 马氏距离
    在这里插入图片描述

三、KNN参数选择
KNN算法的效果很大程度上取决于kkk值得选择,前面的例子也可以看出来,当取不同的kkk值时,效果可能会差很多。

那如何确定kkk值呢?

交叉验证
交叉验证在机器学习中非常常见,使用时一般采用5折交叉验证或者10折交叉验证。
首先我们有训练集和测试集,然后将训练集分为训练集和验证集,如下图:
在这里插入图片描述

5折交叉验证示意图

在这里插入图片描述
四、KNN注意事项

  1. k值选择
    k值一般选择奇数,类似于投票避免平票的情况。
  2. 特征缩放
    在KNN算法中,需要计算测试点到各个点的距离,如果某个特征的量级比别的特征大,可能会造成距离被这个特征值主导的情况,因此需要对特征缩放。
    在这里插入图片描述

五、KNN优缺点

  1. 优点
  1. 缺点

参考文献
https://zhuanlan.zhihu.com/p/71196329
https://zhuanlan.zhihu.com/p/71540760

欢迎添加个人微信号:liu2536036458。 想进入交流群的,备注:数据分析交流群


我们共同学习,共同进步!!!

标签:KNN,机器,个点,验证,近邻,距离,算法,kkk
来源: https://blog.csdn.net/Asher117/article/details/96115458