R中的K最近邻算法[带有示例的终极指南]

已发表: 2020-03-20

R 中的 KNN 算法因其多功能性和功能性而非常流行。 因此,如果您正在学习机器学习,您一定不时听说过它的名字。 您一定想知道,“R 中的 KNN 是什么?” 或“它是如何工作的?”。

在本文中,我们将找到这些问题的答案,并帮助您彻底理解这个主题。 因此,事不宜迟,让我们开始吧。

目录

什么是 KNN 算法?

KNN 代表 K 最近邻。 它是一种有监督的机器学习算法,根据点相邻数据点的特征将数据点分类为目标类。

假设您希望您的机器识别苹果和橙子的图像并区分它们。 为此,您需要输入苹果和橙色图像的数据集。 然后,您必须训练您的数据模型,让它通过其独特的特征检测每种水果。 比如,它可以通过红色识别苹果,通过颜色识别橙子。

训练完数据模型后,您可以通过为它提供一个包含其他苹果和橙子图像的新数据集来对其进行测试。 现在,KNN 算法将根据它在训练模型中发现的特征,通过对苹果和橙子进行分类来将它们分开。

它将一个数据点的特征与其相邻的特征进行比较,看看它们有多相似。 它会根据这些发现对它们进行分类。

在许多情况下,您将在图表上绘制点。 要计算两点之间的距离,您需要使用不同的公式。 计算两个数据点之间距离的最常用方法是欧几里得距离。 它计算距离而不考虑点中存在的属性或属性。

KNN 算法的特点

以下是 R 中 KNN 算法的特点:

  • 它是一种监督学习算法。 这意味着它使用标记的输入数据来预测数据的输出。
  • 这是一个简单的机器学习算法
  • 您可以将 KNN 算法用于多种问题
  • 它是一个非参数模型。 这意味着它不对数据做任何假设,这使得解决与真实数据相关的问题非常有用。
  • 它通过将数据点与其相邻数据点进行比较来对数据进行分类。 简单来说,KNN 算法的工作是基于属性的相似性。
  • 它属于惰性算法的范畴。 惰性算法会记住训练数据,而不是从中学习判别函数。 详细了解机器学习算法的类型。
  • 您可以使用 KNN 来解决回归和分类问题。

KNN 算法是无偏的,并且由于我们上面讨论的特性,它是许多问题的首选。 然而,一切都有其问题,KNN 也不例外。

该算法对于解决过于复杂的问题没有用处。 它的模型也没有抽象过程。 对于一个合适的模型,您需要高质量的数据,因为它有时会错过有价值的见解,因为它是一种惰性算法。 它很快,但您需要花费大量时间进行数据清理。

它是如何工作的?

要了解 R 中的 KNN 是如何工作的,我们将看另一个示例。

假设您的数据集有两个类。 第 1 类有矩形,第 2 类有圆形。 您必须使用此算法将输入的新数据点分配给这两个类之一。 为此,您首先必须为您的算法定义“K”的值。 K 表示算法将考虑的最近邻点的数量。

考虑在此示例中输入 K 作为 4。 对于 K = 4,邻居是三个圆形和一个矩形。 在这种情况下,您会将数据点归为第 2 类,因为该点周围的圆圈数量高于矩形。

如果邻居是三个矩形和一个圆形,您会将其归为第 1 类。我们已经讨论过 KNN 算法如何计算两点之间的距离以确定谁是最近的邻居。 为此,它使用欧几里得距离公式。

欧几里得距离的公式如下:

d(p,q) = d(q,p) = ( q 1 p 1 ) 2 +( q 2 p 2 ) 2 ... ( q n p n ) 2

这里,p = (p1, p2, p3, .... pn) 和 q = (q1, q2, q3, ... qn)。 在这个等式中,“d”表示点 p 和 q 之间的欧式距离。

如您所见,这很简单。 它的简单性使其具有高度的通用性,因此它是最流行的算法之一。 您可以使用它来解决各种问题。

R中的KNN示例

您可能想知道我们在哪里可以看到 KNN 算法在现实生活中的应用。 为此,您必须查看亚马逊。

亚马逊的巨大成功取决于很多因素,但其中一个突出的因素是他们对先进技术的使用。 其中一项技术是机器学习。 他们的推荐系统帮助他们创造了数亿美元的收入。 而这个推荐系统为此使用了 KNN 算法。

另请阅读:机器学习项目理念

假设您在亚马逊上购买了一件黑色牧马人牛仔裤和一件皮夹克。 几周后,另一个人从亚马逊购买了同样的牛仔裤,但没有买那件皮夹克。 亚马逊会推荐此人购买夹克,因为他的购买模式与您的相似。

因此,亚马逊的推荐系统基于人们的购买模式而工作。 为了理解这种相似性,您可以使用基于此原理的 KNN 算法。 现在您了解了该算法的基础知识及其实际应用。 还有很多其他的使用例子,但现在,让我们坚持这个。

学习世界顶尖大学的数据科学课程获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。

结论性想法

R 中的 KNN 算法有很多用途。 并且在阅读了这篇文章之后,我们相信你对这个算法很熟悉了。 如果您想了解有关此类机器学习算法的更多信息,您应该查看我们详细的机器学习课程

除了其他方面,您将学习很多关于机器学习和其中使用的各种算法的知识。

R 编程语言是用来做什么的?

编程语言 R 是为涉及统计和数据可视化的计算而创建的。 今天,R 被统计学家、数据科学家、数据和业务分析师广泛使用。 R 的核心内置了许多统计功能,因此 R 可以实现的大部分核心数据分析不需要第三方库。 与许多其他计算机编程语言不同,R 不是通用语言。 因此,它本质上是用来实现它做得非常好的特定功能。 然而,R 被各行各业的企业广泛使用,以从用户生成的大量日常数据中获取有用的见解。

用 R 编程有什么好处?

R 编程语言为新手和专家程序员提供了各种优势。 它的主要优点包括它为构建统计计算模型提供的功能和便利性。 其次,R 是一种支持并行分布式计算的开源编程语言。 任何人都可以使用它,而无需购买许可证或使用费。 此外,它还带有一个庞大的库来支持各种功能,其独立于平台的框架也增加了便利性。 R 也可用于有效的数据清理、网络抓取和数据整理功能,并广泛用于开发机器学习模型。

为什么 KNN 被称为 Lazy Learner 算法?

K-最近邻算法是机器学习中最简单的算法之一。 然而,它通常被称为懒惰的学习者。 这样做的原因是,当您向该算法提供所有与训练相关的数据时,它无法训练自己。 它不是学习判别函数,而是记住整个训练数据集。 每添加一个新数据点,该算法就会在整个训练集中搜索其最近的邻居,这总是会增加进行预测所需的时间。 这通常使其计算成本高且非常耗时。