前言:
今天小伙伴们对“knn算法python代码不用包”大体比较注重,小伙伴们都需要学习一些“knn算法python代码不用包”的相关资讯。那么小编也在网摘上网罗了一些对于“knn算法python代码不用包””的相关知识,希望各位老铁们能喜欢,看官们一起来了解一下吧!前言:
这篇文章主要为大家详细介绍了python实现KNN分类算法,文中示例代码介绍的非常详细,具有一定的参考价值,希望对各位有所帮助。
一、KNN算法简介
邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。
kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。 kNN方法在类别决策时,只与极少量的相邻样本有关。由于kNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,kNN方法较其他方法更为适合。
二、算法过程
1.读取数据集
2.处理数据集数据 清洗,采用留出法hold-out拆分数据集:训练集、测试集
3.实现KNN算法类:
1)遍历训练数据集,离差平方和计算各点之间的距离
2)对各点的距离数组进行排序,根据输入的k值取对应的k个点
3)k个点中,统计每个点出现的次数,权重为距离的导数,得到最大的值,该值的索引就是我们计算出的判定类别
三、代码实现及数据分析
分析:首先读取数据集,如下图:
最后一列为数据集的分类名称,但是在程序中,我们更倾向于使用如0、1、2数字来表示分类,所以对数据集进行处理,处理后的数据集如下:
然后采用留出法对数据集进行拆分,一部分用作训练,一部分用作测试,如下图:
实现KNN算法类:
提示:图一,图二代码是连起来的!
得出计算结果:
26
0.9629629629629629
得出该模型计算的结果中,有26条记录与测试集相等,准确率为96%
接下来绘制散点图:
程序运行结果如下:
四、思考与优化
①尝试去改变邻居的数量。
②在考虑权重的情况下,修改邻居的数量。
③对比查看结果上的差异。
以上就是本文的全部内容,希望对大家的学习有所帮助!
最后,小编想说一句话:我是一名python开发工程师,整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习,面试宝典,面试宝典,面试宝典。想要这些资料的可以关注小编,并在后台私信小编:“07”即可领取
标签: #knn算法python代码不用包