【机器学习】【KNN】线性扫描算法,详解+python代码实现

本文详细介绍了KNN(K最近邻)算法,并通过一个实例展示了如何计算测试点(8,16)的分类标签。算法步骤包括计算欧氏距离、排序、选择最近的K个点、计算频率及预测分类。同时,给出了Python实现KNN算法的代码,结果显示(8,16)被分类为"B"。" 117067789,11041278,C# 一维数组详解及示例,"['C#编程', '数组操作', '编程基础']
摘要由CSDN通过智能技术生成

1.KNN算法讲解

KNN算法,K最近邻分类算法(K-NearestNeighbor)是数据挖掘分类技术中最简单的方法之一。KNN的分类结果表明k个最近的邻居可以来代表测试样本数据的分类类型。


请思考一个问题,给二维坐标中点进行贴标签:

    已经有被贴了标签“A”的点:(4 35),(5 38), (6 30)

    已知有被贴了标签“B”的点:(10 12),(11 15),(12 10)

    现在有一个未被贴标签的点:(8 16)

    请问测试点(8 16)应该被贴上什么标签,是“A”还是“B”呢?

下面是python实现的KNN算法运行的结果图:

从图中可以看出KNN给测试数据(8,16)贴上了“B”标签,和(10 12),(11 15),(12 10)分类到了一起。上面已经被贴标签的数据就是训练数据样本集,而待贴标签的(8,16)数据就是测试数据集。也就是KNN算法根据训练数据集,将测试数据集进行贴标签进行分类。

下面说明下KNN算法的计算步骤:

    1)计算待测试数据与训练数据集中的每个训练数据之间的距

        KNN算法采取的是欧氏距离,即连个点之间的真是距离。如二维空间中俩点(x1, y1)、(x2、y2)的欧氏距离公式为:

                                          

    2)按照距离的递增关系对训练数据集中的数据进行排序

    3)获取距离最小的K个点,即排序中的前K个训练数据

    4)计算排序中的前K个训练数据所在标签出现的频率

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


那我们按照上面的计算步骤,来将上面测试数据(8, 16)是如何被贴上标签"B"的,详细计算步骤如下所示

    被贴了标签“A”的点:(4 35),(5 38), (6 30)

    被贴了标签“B”的点:(10 12),(11 15),(12 10)

    未被贴标

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值