KNN算法

一、简介

         K最近邻(K-Nearest Neighbor,KNN)算法是一种基本分类和回归方法,它可以用于解决模式识别、数据挖掘中的分类和聚类问题。其主要思想是:对于一个测试样本,在训练集中找到与之距离最近的K个邻居,然后使用这K个邻居的标签进行投票,将该测试样本分类为票数最多的标签。

1.1原理

        如图所示,绿色方形为测试点。当K=3时,KNN算法会找到距离它最近的3个点,即图中的虚线区域,判断该区域内哪种形状最多,最后将测试点归类进这种形状当中。因此,绿色方形最终被判断为蓝色三角。

1.2距离计算

        KNN算法的一个关键问题,就是如何判断距离最近。常用欧氏距离计算:

在二维空间中,公式为:

n维空间中,公式为:

二、步骤

  1. 计算距离:对于每个测试样本,计算该样本与所有训练样本之间的距离,并按照距离大小排序。

  2. 找到K个最近邻:选取距离最近的K个训练样本作为该测试样本的最近邻。这里的距离可以根据实际情况选择欧氏距离、曼哈顿距离等。

  3. 标签投票:根据K个最近邻的标签进行投票,将票数最多的标签作为该测试样本的预测输出。

  4. 输出结果:将测试样本预测结果输出。

三、代码实现

使用KNN算法对水果进行分类。

 1.导入所需的库

 

2.准备数据集,将其划分为训练集和测试集

3.创建KNN分类器对象,并进行训练

4.对测试集数据进行预测,打印预测结果

运行结果为

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值