实战:四个步骤教你用python实现KNN分类算法!(建议收藏)

前言:

这篇文章主要为大家详细介绍了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个点中,统计每个点出现的次数,权重为距离的导数,得到最大的值,该值的索引就是我们计算出的判定类别

三、代码实现及数据分析

12192974-c677d98fcc20307c
实战:四个步骤教你用python实现KNN分类算法!(建议收藏)

分析:首先读取数据集,如下图:

12192974-d7e99b057d890b90
实战:四个步骤教你用python实现KNN分类算法!(建议收藏)

最后一列为数据集的分类名称,但是在程序中,我们更倾向于使用如0、1、2数字来表示分类,所以对数据集进行处理,处理后的数据集如下:

12192974-669d9c006678188a
实战:四个步骤教你用python实现KNN分类算法!(建议收藏)

然后采用留出法对数据集进行拆分,一部分用作训练,一部分用作测试,如下图:

12192974-b4e6e9017e302821
实战:四个步骤教你用python实现KNN分类算法!(建议收藏)

实现KNN算法类:

12192974-999be8dbb6566b93
实战:四个步骤教你用python实现KNN分类算法!(建议收藏)
12192974-cc0063283695b5c2
实战:四个步骤教你用python实现KNN分类算法!(建议收藏)

提示:图一,图二代码是连起来的!

12192974-7c6d8a8cf103e7f4
实战:四个步骤教你用python实现KNN分类算法!(建议收藏)

得出计算结果:

26

0.9629629629629629

得出该模型计算的结果中,有26条记录与测试集相等,准确率为96%

接下来绘制散点图:

12192974-679bbe0bc4c87b62
实战:四个步骤教你用python实现KNN分类算法!(建议收藏)

程序运行结果如下:

12192974-2a78b1bcb5aa88fa
实战:四个步骤教你用python实现KNN分类算法!(建议收藏)

四、思考与优化

①尝试去改变邻居的数量。

②在考虑权重的情况下,修改邻居的数量。

③对比查看结果上的差异。

以上就是本文的全部内容,希望对大家的学习有所帮助!

python交流群:877562786(群里含大量学习资料,面试宝典等)

  • 8
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值