机器学习K近邻(KNN)算法的原理及优缺点泰初

K近邻法(k-nearstneighbors,KNN)是一种很基本的机器学习方法。

它的基本思想是:在训练集中数据和标签已知的情况下,输入测试数据,将测试数据的特征与训练集中对应的特征进行相互比较,找到训练集中与之最为相似的前K个数据,则该测试数据对应的类别就是K个数据中出现次数最多的那个分类。

由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。KNN算法不仅可以用于分类,还可以用于回归。通过找出一个样本的k个最近邻居,将这些邻居的属性的平均值赋给该样本,就可以得到该样本的属性。更有用的方法是将不同距离的邻居对该样本产生的影响给予不同的权值(weight),如权值与距离成反比。

KNN算法的描述:

(1)计算测试数据与各个训练数据之间的距离;

(2)按照距离的递增关系进行排序;

(3)选取距离最小的K个点;

(4)确定前K个点所在类别的出现频率

(5)返回前K个点中出现频率最高的类别作为测试数据的预测分类。

算法流程:

(1)准备数据,对数据进行预处理。

(2)选用合适的数据结构存储训练数据和测试元组。

(3)设定参数,如k。

算法优点:

(1)简单,易于理解,易于实现,无需估计参数。

(3)KNN可以处理分类问题,同时天然可以处理多分类问题,适合对稀有事件进行分类。

(4)特别适合于多分类问题(multi-modal,对象具有多个类别标签),KNN比SVM的表现要好。

(5)KNN还可以处理回归问题,也就是预测。

(6)和朴素贝叶斯之类的算法比,对数据没有假设,准确度高,对异常点不敏感。

算法缺点:

(1)计算量太大,尤其是特征数非常多的时候。每一个待分类文本都要计算它到全体已知样本的距离,才能得到它的第K个最近邻点。

(2)可理解性差,无法给出像决策树那样的规则。

(3)是慵懒散学习方法,基本上不学习,导致预测时速度比起逻辑回归之类的算法慢。

(4)样本不平衡的时候,对稀有类别的预测准确率低。当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。

(5)对训练数据依赖度特别大,对训练数据的容错性太差。如果训练数据集中,有一两个数据是错误的,刚刚好又在需要分类的数值的旁边,这样就会直接导致预测的数据的不准确。

二、代码实现

模型建好后的运行结果如下:=======================新加入样本的类别是:[1]该模型针对次数据集的分类正确率是:0.96

THE END
1.knn图mob64ca1419e0cc的技术博客【图像处理】-034 knn算法 在读matting文献的时候,读到了knn matting,该算法在抠图之后的效果还可以,在后面的深度抠图时常用语制作训练样本的mask。这里,先对knn进行简单介绍。 文章目录 【图像处理】-034 knn算法 1 原理 2 优劣势 3 实现步骤 https://blog.51cto.com/u_16213723/12865064
2.KNN算法及其优缺点knn算法优缺点KNN算法及其优缺点 K-最近邻算法(K-Nearest Neighbors, KNN)是一种基本的分类和回归算法。它的工作原理是通过在训练样本中找到距离待分类样本最近的K个样本,并根据这K个样本的标签来确定待分类样本的标签。KNN算法具有以下优点和缺点。 优点: 简单易懂:KNN算法是一种直观的算法,易于理解和实现。https://blog.csdn.net/m0_72249799/article/details/135163174
3.KNN算法原理KNN算法缺点 对内存要求较高,因为该算法存储了所有训练数据 预测阶段可能很慢 对不相关的功能和数据规模敏感 至于什么时候应该选择使用KNN算法,sklearn的这张图给了我们一个答案。 简单得说,当需要使用分类算法,且数据比较大的时候就可以尝试使用KNN算法进行分类了。 https://mp.weixin.qq.com/s?__biz=MzAxMjY5NDU2Ng==&mid=2651864063&idx=1&sn=2525ff7727ae11c28f9ead0bbcc3a106&chksm=80497eb6b73ef7a0e4f69f3edd8488d905ac7cac4f8e7ce78a98dc933e566358fd51cf59df02&scene=27
4.AI产品经理必懂算法:k近邻(KNN)算法简单,易于理解,易于实现,无需估计参数,无需训练;特别适合于多分类问题(multi-modal,对象具有多个类别标签), kNN比SVM的表现要好。缺点: 计算复杂度高、空间复杂度高;样本严重不平衡时,如果一个类的样本容量很大,而其他类很小,有可能导致输入一个新样本时,被误判为该分类的概率会很大。了解了算法的优势和局限性https://baijiahao.baidu.com/s?id=1621093032596013290&wfr=spider&for=pc
5.K近邻(KNN)算法:优缺点及算法变种K近邻(KNN)算法是一种简单直观的有监督学习方法,广泛应用于分类和回归任务中。本文将详细介绍KNN算法的基本原理、优缺点以及几种常见的算法变种。 KNN算法的基本原理 定义 K近邻算法是一种基于实例的学习方法,它不需要显式的训练过程。对于给定的输入样本,KNN算法会计算其与训练集中所有样本的距离,并选取距离最近的https://open.alipay.com/portal/forum/post/181001059
6.kNN算法python实现和简单数字识别的方法python这篇文章主要介绍了kNN算法python实现和简单数字识别的方法,详细讲述了kNN算法的优缺点及原理,并给出了应用实例,需要的朋友可以参考下 本文实例讲述了kNN算法python实现和简单数字识别的方法。分享给大家供大家参考。具体如下: kNN算法算法优缺点: 优点:精度高、对异常值不敏感、无输入数据假定 https://www.jb51.net/article/57553.htm
7.KNN算法的三要素及优缺点是什么?评论(0)发表评论 暂无数据 https://www.cda.cn/discuss/post/details/5bcf142afd09f85f7909befd
8.机器学习KNN算法原理&&Spark实现3. KNN算法优缺点 优点:易于理解,实现起了很方便,无需预估参数,无需训练 缺点:数据集中如果某个类的数据量很大,那么势必导致测试集合跑到这个类的更多,因为离这些点较近的概率也较大 4.KNN算法Spark实现 4.1 数据下载和说明 链接:pan.baidu.com/s/1FmFxSrPIynO3udernLU0yQ 提取码:hell https://www.imooc.com/article/314671
9.各类聚类算法的特点和优缺点算法特点: 需要提前预知类的数量; 基于距离聚类。 优点: 速度快,计算简便 缺点: K-means需要用初始随机种子点来启动优化,这个随机种子点太重要,不同随机种子点会得到完全不同的结果 变体: K-medians是k-means的一种变体,使用数据集的中位数而不是均值来计算中心点; https://zhuanlan.zhihu.com/p/607987678
10.MLK机器学习常见算法优缺点了解一下腾讯云开发者社区MLK | 机器学习常见算法优缺点了解一下 MLK,即Machine Learning Knowledge,本专栏在于对机器学习的重点知识做一次梳理,便于日后温习,这篇文章很久之前在本公众号发过,现在拿回来整理下,也算是一种温故而知新了。 ? 前情回顾 MLK | 那些常见的特征工程https://cloud.tencent.com/developer/article/1485883
11.KNN算法惰性:同样是分类算法,逻辑回归需要先对数据进行大量训练,最后才会得到一个算法模型。而KNN算法却不需要,它没有明确的训练数据的过程,或者说这个过程很快。 5.算法优缺点 优点: (1)模型训练时间快(因为KNN算法是惰性的)。时间复杂度为O(n)。 (2)可用于非线性分类。 https://www.jianshu.com/p/374e599faf4b
12.KNN算法及改进论文.doc1.3本文的组织结构本文的其余部分的安排如下:木文第二节介绍了分类算法以及KNN算法的一些概念及优缺点,第三节介绍了三 种方法的实例实现过程,第四节是对数据分类的总结与展望。分类算法分析与实现 2.1分类概念与分类方法分类是数据挖掘中应用领域极其广泛的重要技术之一,至今己经提出很多算法。分类 是根据数据集的特点https://max.book118.com/html/2019/1217/6111154225002132.shtm
13.Python用KNN(KKNN算法的优缺点 优点 实现简单 它是一种惰性学习算法,因此不需要对所有数据点进行训练(仅使用K个最近邻来预测)。这使得KNN算法比其他需要使用整个数据集进行训练的算法(如支持向量机和线性回归等)要快得多。 由于KNN在进行预测之前不需要训练,因此可以无缝添加新数据。 https://developer.aliyun.com/article/1498971
14.机器学习(一)2万多字的监督学习模型总结? KNN 算法可以说是最简单的机器学习算法,构建和预测都非常简单。构建模型只需要保存训练数据集即可。想要对新数据点做出预测,算法会在训练数据集中找到最近的数据点,也就是它的“最近邻”。 ?一个邻居:KNN算法最简单的就是一个最近邻,也就是与我们想要预测的数据点最近的训练数据点。预测结果就是这个训练数https://www.flyai.com/article/515
15.清华大学出版社图书详情第3章简单分类算法 3.1朴素贝叶斯分类算法 3.2KNN分类算法 3.2.1KNN算法实现原理 3.2.2KNN算法实现步骤 3.2.3KNN算法优缺点 3.3应用案例: KNN分类 3.3.1数据集 3.3.2构建KNN分类器 3.3.3案例结果及分析 第4章决策树 4.1决策树模型 4.2特征选择 4.2.1特征和数据划分 http://www.tup.tsinghua.edu.cn/booksCenter/book_09409501.html
16.融合信息增益比和遗传算法的混合式特征选择算法?虽然混合式算法可以有效地克服过滤式和封装式的缺点. 然而, 过滤式阶段的阈值设定以及遗传算法的 局部最优解等问题仍然需要解决[12?14,18]. 基于上述描述, 本文提出一种融合信息增益比排序分组和分组进化遗传算法的混合式特征选择算法 (GRRGA). 该算法主要分为 3 部分: 首先, 使用基于信息增益比的过滤式算法https://jos.org.cn/jos/article/pdf/6099