前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >算法研习:Knn算法基本原理分析

算法研习:Knn算法基本原理分析

作者头像
深度学习与Python
发布2019-06-19 20:13:27
1.6K0
发布2019-06-19 20:13:27
举报

在这篇文章中,我将介绍knn算法,knn算法是机器学习中十大经典算法之一。knn可用于分类和回归问题,其算法原理简单,没有涉及太多数学原理,准确的说用一个数学公式就可以表示整个算法的核心。本文主要包括以下四个问题:

1.什么是knn?

2.knn算法原理

3.如何在KNN中选择k值?

4.knn优缺点

什么是knn

Knn,也叫k近邻,是一种简单的机器学习算法,其中k是一个参数,是指包含的最近邻居的数量。它根据所有样本集中的数据,根据相似性度量选择k个最近的邻居并按邻居的类别进行分类。举葡萄酒分类为例。 两种化学成分称为Rutime和Myricetin。 考虑使用红葡萄酒和白葡萄酒的Rutine与Myricetin含量进行分类,如下图所示。

现在如果我们在数据集中添加一类酒。 我们想知道新酒是红葡萄酒还是白葡萄酒?

运用knn算法我们需要找出其最近邻居的类别是什么。 假设k = 5,新数据点按其五个邻居的类别投票进行分类,由于五个邻居中有四个是红葡萄酒,因此这杯酒的类别也就是红葡萄酒。

knn算法原理

在分类问题中,K-最近邻算法基本上归结为在K个最相邻的实例与给定的“看不见的”观察之间形成多数投票。 根据欧氏距离来计算两个数据点之间的距离度量来定义相似性。 欧氏距离的公式如下:

其他相似性度量方法包括曼哈顿距离、闵可夫斯基距离和汉明距离方法。 我们举一个小例子,通过年龄与贷款来预测安德鲁默认状态(是或否)。

下边开始计算各点的欧氏距离,如下表所示:

在K = 5的情况下,五个最近邻居中有两个为N和三个为 Y。因此我们可以说安德鲁的状态是Y。

如何在KNN中选择k值

KNN算法中的k基于特征相似性选择K的正确值是一个称为参数调整的过程,对于更好的准确性非常重要。 找到k的值并不容易。关于选择K值有以下几点想法:

1)首先,没有固定的方法寻找K的最佳值,因此我们必须在确定一个k值之前多尝试几次。因此我们可以假设部分训练数据“未知”来进行测试。

2)较小的K值可能受到异常值的影响。

3)较大的K值将具有更平滑的决策边界,这也意味着较低的方差和较高的偏差。

4)选择K的另一种方法是交叉验证。 从训练数据集中取出一小部分并将其称为验证数据集,然后使用相同的值来评估不同的k值。比如我们将使用K等于1来预测验证集中每个实例的标签。K等于2,K等于3 ..然后我们看看K的值给了我们验证集上的最佳性能然后我们可以取这个值并将其用作我们算法的最终k值以最小化验证误差。

5)一般来说选择k的值是k = sqrt(N),其中N代表训练数据集中的样本数 。

knn优缺点

KNN的优点

  1. 易于理解与实现
  2. 灵活的距离度量方法选择
  3. 适用于处理多类别分类问题和回归问题
  4. 适用于小样本数据集

KNN的缺点

  1. 需要确定参数K值
  2. 计算成本非常高,因为我们需要计算每个查询实例与所有训练样本的距离。
  3. 需要针对不同问题选择合适的距离函数。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 深度学习与python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • KNN的优点
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档