KNN分类器

前言

KNN算法

一、疑问

  1. K表示什么,如何取值
  2. 如何寻找计算距离的点

二、基本步骤

1)算距离:给定测试对象,计算它与训练集中的每个对象的距离
2)找邻居:圈定距离最近的k个训练对象,作为测试对象的近邻
3)做分类:根据这k个近邻归属的主要类别,来对测试对象分类

三、图解

在这里插入图片描述
在这里插入图片描述

四、疑惑解答

  1. K的取值靠自己一个个设置,再看效果,来确定,一张相同的图片对照K=1和K=5的效果如下
    在这里插入图片描述
    在这里插入图片描述
    图中 K=1 可以发现一些颜色当中会嵌套着另外一些颜色的小点,而根据经验来说,比如离紫色最近的地方,必定也是紫色,因此这种K=1的取值可能会造成过拟合,当K=5时,可以看到图中大量红色的地方是红色,大量紫色绿色的地方分别是相同的颜色,这种分布,比较符合算法的预期,因此这里K=5比较好
  2. KNN距离计算比较粗暴,直接讲预测点和所有点进行计算,然后排序

五、代码

1)计算已知类别数据集中的点与当前点之间的距离
2)按距离递增次序排序
3)选取与当前点距离最小的k个点
4)统计前k个点所在的类别出现的频率
5)返回前k个点出现频率最高的类别作为当前点的预测分类

from numpy import * #导入numpy科学计算包
import ope
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值