KNN算法 使用KNN对iris数据集分类

一、KNN算法 (K近邻算法) 简述

可以简单粗暴的认为在判断一个未知事物时,可以观察离它最近的几个样本。

步骤:

寻找样本数据集K个最近的元素

计算K个元素中各种类别的占比

占比最高的类别即为新数据的类别

K的取值对结果有很大的影响

如下图,中间的圆要被赋予哪个类?是三角形还是正方形?如果K=3,由于三角形所占比例为2/3,圆将被赋予三角形那个类;如果K=7,由于正方形所占比例为4/7,圆将被赋予正方形那个类

计算复杂度优化

  • 计算新数据(未知样本)和K个训练样本的距离dist;
  • 得到目前K个最邻近样本中的最大距离maxdist;
  • 如果第K+1个训练样本......(剩余的所有训练样本)的dist小于maxdist,则将该训练样本作为K-最近邻样本(即替换掉上述K个最邻近样本中最大距离的那个训练样本)。

边界清晰--选取中心点 纯度 

数据倾斜问题-- 增加权重

二、使用KNN对iris数据集分类

1、导入numpy、Matplotlib、sklearn类库及其模块


                
  • 3
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值