kNN算法原理

KNN算法是一种基本的机器学习方法,通过计算测试数据与训练数据的距离,选择最近的K个邻居,根据邻居的类别频率进行预测。K值选择、距离度量方式和分类决策规划是其关键要素。KNN既可用于分类也可用于回归,分类时采用多数表决,回归时取K个邻居输出的平均值。
摘要由CSDN通过智能技术生成

KNN算法概述

KNN算法的思想

K近邻法(k-nearst neighbors,KNN)是一种很基本的机器学习方法。它的思想是:
训练集数据标签已知的情况下,输入测试数据,将测试数据的特征与训练集中对应的特征进行相互比较,找到训练集中与之最为相似的前K个数据,则该测试数据对应的类别就是K个数据中出现次数最多的那个分类。

KNN算法的描述

1)计算测试数据与各个训练数据之间的距离;
2)按照距离的递增关系进行排序;
3)选取距离最小的K个点;
4)确定前K个点所在类别的出现频率;
5)返回前K个点中出现频率最高的类别作为测试数据的预测分类。

KNN算法举个栗子

参考:https://www.cnblogs.com/sxron/p/5451923.html
如下图,绿色圆要被决定赋予哪个类,是红色三角形还是蓝色四方形?如果K=3,由于红色三角形所占比例为2/3,绿色圆将被赋予红色三角形那个类,如果K=5,由于蓝色四方形比例为3/5,因此绿色圆被赋予蓝色四方形类。
这里写图片描述
由此也说明了KNN算法的结果很大程度取决于K的选择。

KNN算法三要素

参考:https://www.cnblogs.com/pinard/p/6061661.html
- K值的选取
- 距离度量的方式
- 分类决策规划

1. K值的选取

对于k值的选择,没有一个固定的经验,一般根据样本的分布,选择一个较小的值,可以通过交叉验证选择一个合适的k值。

  选择较小的k值,就相当于用较小的邻域中的训练实例进行预测,训练误差会减小,只有与输入实例较近或相似的训练实例才会对预测结果起作用,与此同时带来的问题是泛化误差会增大,换句话说,K值的减小就意味着整体模型变得复杂,容易发生过拟合。
  
  选择较大的k值,就相当于用较大邻域中的训练实例进行预测,其优点是可以减少泛化误差,但缺点是训练误差会增大。这时候,与输入实例较远(不相似的)训练实例也会对预测器作用,使预测发生错误,且K值的增大就意味着整体的模型变得简单。
  一个极端是k等于样本数m,则完全没有分类,此时无论输入实例是什么,都只是简单的预测它属于在训练实例中最多的类,模型过于简单。

2. 距离度量的方式

1、欧式距离
对于距离的度量,我们有很多的距离度量方式,但是最常用的是欧式距离,即对于两个n维向量x和y,两者的欧式距离定义为:

D(x,y)=(x1y1)2+(x2y2)2+...+(xnyn)2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值