K-近邻算法的python实现代码分享

 更新时间:2017年12月09日 09:57:23   作者:kekezhai  
这篇文章主要介绍了K-近邻算法的python实现代码分享,具有一定借鉴价值,需要的朋友可以参考下。

k-近邻算法概述:

所谓k-近邻算法KNN就是K-Nearest neighbors Algorithms的简称,它采用测量不同特征值之间的距离方法进行分类

用官方的话来说,所谓K近邻算法,即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例(也就是上面所说的K个邻居), 这K个实例的多数属于某个类,就把该输入实例分类到这个类中。

k-近邻算法分析

优点:精度高、对异常值不敏感、无数据输入假定。

缺点:计算复杂度高、空间复杂度高。

适用数据范围:数值型和标称型

k-近邻算法工作原理:

它的工作原理是:存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据与所属分类的对应关系。输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。一般来说,我们只选择样本数据集中前k个最相似的数据,这就是k-近邻算法中k的出处,通常k是不大于20的整数。最后,选择k个最相似数据中出现次数最多的的分类,作为新数据的分类。

​k-近邻算法实现过程:

对未知类别​属性的数据集中的每个点依次执行以下操作:

​(1)计算已知类别数据集中的点与当前点之间的距离;

(2)按照距离递增次序排序;

(3)选取与当前点距离最小的k个点;

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

(5)返回前k个点出现频率最高的类别作为当前点的预测分类。

​k-近邻算法python代码实现:

编辑kNN.py文件代码如下:

编辑完成后保存,linux下确保当前路径为存储kNN.py文件的位置,进入python开发环境开始测试:

上图给出了点[0,0]、[1,0.9]的测试输出分类结果分别为B、A。至此,我们已经构造完成了一个分类器,使用这个分类器可以完成很多分类任务。从这个实例出发,构造使用分类算法将会更加容易。

分类器测试评估:

为了测试分类器的效果,需要对分类器做出评估,我们可以通过大量的测试数据得到分类器的错误率——分类器给出错误结果的次数除以测试执行的总数。错误率是常用的评估方法,主要用于评估分类器在某个数据集上的执行效果。完美分类器的错误率为0,最差分类器的错误率是1.0,在这种情况下,分类器根本就无法找到一个正确答案。

结束语:

本文首先对kNN做了简单介绍,通过了解其工作原理和实现流程,并使用k-近邻算法构造了分类器。我们也可以检验分类器给出的答案是否符合我们的预期。此外,还可以对分类器做大量的测试,并以错误率来评估该分类器的分类效果。

以上就是本文关于K-近邻算法的python实现代码分享的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题。如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

相关文章

  • 使用numpy nonzero 找出非0元素

    使用numpy nonzero 找出非0元素

    这篇文章主要介绍了使用numpy nonzero 找出非0元素的方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • python读取nc数据并绘图的方法实例

    python读取nc数据并绘图的方法实例

    最近项目中需要处理和分析NC数据,所以下面这篇文章主要给大家介绍了关于python读取nc数据并绘图的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • Django中使用Celery的方法步骤

    Django中使用Celery的方法步骤

    这篇文章主要介绍了Django中使用Celery,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Zabbix实现微信报警功能

    Zabbix实现微信报警功能

    这篇文章主要介绍了Zabbix实现微信报警的相关资料,本文图文并茂介绍的非常详细,需要的朋友可以参考下
    2016-10-10
  • 浅谈一下Python中5种下划线的含义

    浅谈一下Python中5种下划线的含义

    这篇文章主要介绍了Python中5种下划线的含义,在我们学习Python的过程中,经常会遇到一些带下划线的词,那么不同的下划线有什么意义呢,一起来学习一下吧
    2023-03-03
  • Python执行外部命令subprocess的使用详解

    Python执行外部命令subprocess的使用详解

    subeprocess模块是python自带的模块,无需安装,主要用来取代一些就的模块或方法,本文通过实例代码给大家分享Python执行外部命令subprocess及使用方法,感兴趣的朋友跟随小编一起看看吧
    2021-05-05
  • Python中使用支持向量机(SVM)算法

    Python中使用支持向量机(SVM)算法

    这篇文章主要为大家详细介绍了Python中使用支持向量机SVM算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • 下载安装好python后想查看python安装位置的几种方法

    下载安装好python后想查看python安装位置的几种方法

    这篇文章主要介绍了在Windows系统中查看Python路径和版本的几种方法,并提供了一个清除命令行窗口的技巧,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2025-03-03
  • Python matplotlib绘图可视化知识点整理(小结)

    Python matplotlib绘图可视化知识点整理(小结)

    这篇文章主要介绍了Python matplotlib绘图可视化知识点整理(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • pyqt5 textEdit、lineEdit操作的示例代码

    pyqt5 textEdit、lineEdit操作的示例代码

    这篇文章主要介绍了pyqt5 textEdit、lineEdit操作的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08

最新评论