机器学习(二)——knn算法深度解析

本文深入探讨了KNN算法,从算法步骤、K值选择及其影响、距离计算方法等方面进行详细解析。通过实例展示了KNN如何进行分类,并提供了Python代码实现,用于手写数字识别。实验结果显示,算法的准确性受到K值选取的影响,存在一定的错误率。
摘要由CSDN通过智能技术生成

一:引言

        上一篇中对knn算法进行了相对的了解,并通过一个十分简单的例子大致了解了knn算法的工作原理和工作流程。本篇将继续对knn算法进行深度的解析,帮助理解knn算法

二:算法解析

        1.先简单回顾一下大致的步骤,knn算法可以大致为三个步骤,第一步就是确定k值,就是找与测试点前k个相似的数据,一般取值为不大于20的整数。第二步就是求测试点与样本点的距离。第三部就是按照样本规则来确定测试点属于哪一类。下面是网上找的一张图片。

        2.k的取值分析

        下面是网上找的一张图片。当k=3时,确定的样本点在图中圆圈的范围内,这时候就自然而然按照统计的规则判断测试点为蓝三角形。

        同样k的取值不同也会让结果产生误差,下图是网上找到一张有代表性的图

        

        其中当k为3的时候,按照规则测试点应该划分到红三角的范围,但当k=5的时候测试点又划分到蓝方块的范围内。因此k值的取值应该进行思考。当范围内两种或以上类型的数据点数量相同时,就可以按照距离来划分,下面来讲解距离测试的方法。 

        3.距离测试

        对于knn算法中距离的测试一般用下面的测试方法,测试点用(x,y)表示

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值