k近邻KNN算法
KNN(K-NearestNeighbor);即K近邻算法是数据挖掘分类技术中最简单的方法之一。所谓K近邻就是K个最近的邻居的意思,说的是每个样本都可以用它最接近的K个邻近值来代表。
假设特征空间有8个样本点;
其中红色点为良性肿瘤;蓝色点为恶性肿瘤;
现在要预测绿色点是良性肿瘤还是恶性肿瘤;
我们需要计算出绿色点到所有其他样本点的距离;选择出距离最小的K个点;对K个点所属的类别进行比较;根据少数服从多数的原则;将测试样本点归入在K个点中占比最高的那一类。计算距离方法一般采用欧拉距离公式:
n维特征空间欧式距离计算公式
实现步骤 | |
---|---|
总体来说,KNN分类算法包括以下4个步骤: |
K 值的选择
了解完它的原理之后,下一个要讨论的问题就是,K 的值怎么选择。也就是说,应该选取最近的几个数据点来预测当前数据点呢?
以上面的图为例,如果我们把 K 的值定为 3,那么新数据(绿色)最终的预测结果为红色的三角形,如果 K 为 5,那结果就成了蓝色正方形。在 KNN 算法中,选择 K 的值的过程,其实就是算法参数调优的过程,并没有一个通用的最优的 K 值。
- 如果 K 的值太小,那么预测结果很容易被出现在附近的一场数据点所影响,导致数据异常被扩大。
- 如果 K 的值太大,距离较远的那些与预测数据点相似度不大的数据点与之匹配,会导致隐含的模式被忽略。
通常为了找到合适的 K 值,可以使用交叉验证法(挖个坑)对 K 进行调优。另外,还可以根据距离远近,使用不同的权重对新数据进行预测,使得离预测数据点越近的邻居对其影响越大。
KNN算法优缺点 | |
---|---|
优点: |
|
1)思想简单、效果强大。 |
|
缺点: |
|
1)效率低下,如果训练集有m个样本,n个特征,则预测每一个新的数据,计算复杂度O(m*n) 2)高度数据相关,当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数;对数据的局部结构比较敏感。如果查询点是位于训练集较密集的区域,那预测相对比其他稀疏集来说更准确。 3)预测结果不具有可解释性,只是找到了预测样本距离最近的样本点,不知道为什么属于预测类别。 4)维数灾难:随着维度增加,看似距离很近的2个点距离越来越大 |
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgahjkb
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13