算法图解————K 近邻算法

核心思想

K近邻算法(k_nearest neighbours,KNN)是一种基本的分类与回归方法。它虽然非常简单但却很有用,要对东西进行分类时,可以首先尝试这种算法。

用K近邻来分类时,它的输入为实例的特征向量(对应特征空间的点),输出为实例的类别,其核心思想就是根据实例的邻居的种类来决定该实例的种类。

例如上图,所有的样本包括两类,正方形和三角形,对于未知类样本的种类,如果在第一个圆圈内它有三个邻居——2个三角形1个正方形,因此用投票法来决定的话2:1,那么根据k近邻算法,该未知样本应该是属于三角形类。这就是K近邻进行分类的基本过程。

K近邻三要素

距离度量、K值选择、分类决策规则(回归规则)

距离度量

上述例子有个关键的操作是如何去判断邻居?现实中的邻居当然是距离我们比较近的,同样这里我们也用距离的大小来判断邻居。

1、数学上的距离有好多种,k近邻一般用欧氏距离,即毕达哥拉斯公式:

欧式距离会存在一个缺点就是对于多维度样本,当不同量纲不一致时,容易被单位小数值大的那一个带偏(数值大的起决定性作用)。

2、余弦相似度

余弦相似度在实际选取邻居的工作中也经常使用,它不计算两个矢量的距离,而是比较他们的角度。

余弦相似度可以规避掉不同维度量纲不统一的问题。

3、也可以是Lp距离和Minkowski距离

K值的选择

k值的选择会对k近邻的结果产生重大影响。

例如上例中选3个邻居和5个邻居的结果是不一样的。

1、当选择较小的k时,非常倚重邻的最近的几个点,如果这几个点中有但凡一个噪声,将对输出结果的准确性产生很大影响。因此k小的时候非常容易过拟合。

2、当选择较大的k时,因为参考范围大,可能会有距离很远与实例完全不相关的点被选进来是预测发生错误。

3、极端的两个情况k=1时为最近邻算法。k=N(训练集大小)时,无论输入什么实例,输出结果都不会变——都是训练样本中最多的那一类。

在应用中,k值一般选取一个比较小的数值,采用交叉验证来选取最优的k值。

分类决策规则

k近邻的分类决策规则往往是多数表决,即由k个邻居中的多数类决定输入实例的类。

回归 

KNN可以做两项工作分类和回归。根据特征向量,寻找最近的k个邻居,然后再根据k个邻居的y,去预测当前样本的y(例如根据k个近邻的y值平均来 当做实例的y)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值