什么是KNN 邻近算法

ROBOT@qwh 2023-10-07 阅读:199 评论:0
What is K-Nearest Neighbors (KNN)?K-最近邻是一种机器学习技术和算法,可用于回归和分类任务。K 最近邻检查目标数据点周围选定数量的数据点的标签,以便对数据点所属的类别进行预测。K 最近邻 (KNN) 是一种...

What is K-Nearest Neighbors (KNN)?

K-最近邻是一种机器学习技术和算法,可用于回归和分类任务。K 最近邻检查目标数据点周围选定数量的数据点的标签,以便对数据点所属的类别进行预测。K 最近邻 (KNN) 是一种概念上简单但非常强大的算法,因此,它是最流行的机器学习算法之一。让我们深入研究 KNN 算法,看看它到底是如何工作的。充分了解 KNN 的运作方式将使您了解 KNN 的最佳和最差用例。

K 最近邻 (KNN) 概述

What is K-Nearest Neighbors (KNN).png

让我们在 2D 平面上可视化数据集。在图表上想象一堆数据点,沿着图表以小簇的形式分布。KNN 检查数据点的分布,并根据模型的参数将数据点分成组。然后为这些组分配一个标签。KNN 模型做出的主要假设是,彼此接近的数据点/实例高度相似,而如果数据点远离另一组,则它与这些数据点不相似。

KNN 模型使用图上两点之间的距离来计算相似度。点之间的距离越大,它们的相似度就越低。计算点之间距离的方法有多种,但最常见的距离度量就是欧几里得距离(直线上两点之间的距离)。

KNN 是一种监督学习算法,这意味着数据集中的示例必须分配有标签/它们的类别必须已知。关于 KNN 还有两件重要的事情需要了解。首先,KNN是一种非参数算法。这意味着使用模型时不会对数据集做出任何假设。相反,该模型完全是根据提供的数据构建的。其次,使用 KNN 时不会将数据集拆分为训练集和测试集。KNN 没有对训练集和测试集进行概括,因此当要求模型进行预测时,也会使用所有训练数据。

KNN 算法如何运行

KNN 算法在执行时会经历三个主要阶段:

将 K 设置为选定的邻居数量。

计算提供的/测试示例与数据集示例之间的距离。

对计算出的距离进行排序。

获取前 K 个条目的标签。

返回关于测试示例的预测。

第一步,K 由用户选择,它告诉算法在对目标示例所属的组进行判断时应考虑多少个邻居(有多少个周围的数据点)。在第二步中,请注意模型检查目标示例与数据集中每个示例之间的距离。然后将距离添加到列表中并排序。然后,检查排序列表并返回前 K 个元素的标签。换句话说,如果 K 设置为 5,模型将检查与目标数据点最接近的前 5 个数据点的标签。在渲染有关目标数据点的预测时,任务是回归还是分类很重要任务。对于回归任务,使用前 K 个标签的均值,而在分类的情况下使用前 K 个标签的众数。

用于执行 KNN 的精确数学运算因所选距离度量而异。如果您想了解有关如何计算指标的更多信息,您可以阅读一些最常见的距离指标,例如Euclidean、Manhattan和Minkowski。

为什么 K 的价值很重要

使用 KNN 时的主要限制是,可能会选择不正确的 K 值(要考虑的错误邻居数)。如果发生这种情况,则返回的预测可能会大幅偏离。使用 KNN 算法时,选择 K 的正确值非常重要。您希望为 K 选择一个值,该值可最大限度地提高模型对未见过的数据进行预测的能力,同时减少其所犯的错误数。

Map1NN.png

K 值越低意味着 KNN 给出的预测稳定性和可靠性较差。为了直观地了解为什么会这样,请考虑一个情况,即目标数据点周围有 7 个邻居。假设 KNN 模型的 K 值为 2(我们要求它查看两个最近的邻居以进行预测)。如果绝大多数邻居(七个中的五个)属于 Blue 类,但两个最近的邻居恰好是 Red,则模型将预测查询示例为 Red。尽管模型有猜测,但在这种情况下,蓝色将是一个更好的猜测。

如果是这种情况,为什么不选择我们能选择的最高 K 值呢?这是因为告诉模型考虑太多邻居也会降低准确性。随着 KNN 模型考虑的半径增加,它最终将开始考虑比其他组更接近目标数据点的数据点,并且将开始发生错误分类。例如,即使最初选择的点位于上面的红色区域之一,如果 K 设置得太高,模型也会伸入其他区域以考虑点。使用 KNN 模型时,尝试使用不同的 K 值以查看哪个值为模型提供最佳性能。

KNN 优缺点

让我们来看看 KNN 模型的一些优缺点。

优点:

与其他一些监督学习算法不同,KNN 可用于回归和分类任务。

KNN非常准确且易于使用。它易于解释、理解和实施。

KNN不对数据做出任何假设,这意味着它可以用于各种各样的问题。

缺点:

KNN存储大部分或全部数据,这意味着模型需要大量内存,并且计算成本高昂。大型数据集也可能导致预测需要很长时间。

事实证明,KNN对数据集的规模非常敏感,与其他模型相比,它很容易被不相关的特征抛弃。

K-最近邻(KNN)摘要

K-最近邻是最简单的机器学习算法之一。尽管 KNN 在概念上非常简单,但它也是一种强大的算法,可以在大多数问题上提供相当高的准确性。使用 KNN 时,请务必尝试各种 K 值,以找到提供最高精度的数字。


版权声明

本文仅代表作者观点,不代表本网站立场。
本文系作者授权本网站发表,未经许可,不得转载。

发表评论
热门文章
  • 使用众包反馈来帮助训练机器人

    使用众包反馈来帮助训练机器人
    为了教人工智能代理一项新任务,比如如何打开厨房柜子,研究人员经常使用强化学习——这是一种试错过程,在该过程中,代理会因采取更接近目标的行动而获得奖励。在许多情况下,人类专家必须仔细设计奖励函数,这是一种激励机制,赋予代理人探索的动力。当智能体探索并尝试不同的动作时,人类专家必须迭代地更新奖励函数。这可能非常耗时、效率低下,并且难以扩展,尤其是当任务复杂且涉及许多步骤时。来自麻省理工学院、哈佛大学和华盛顿大学的研究人员开发了一种新的强化学习方法,该方法不依赖于专门设计的奖励函数...
  • 在音频中将你的描述和内容分开模型AudioSep

    在音频中将你的描述和内容分开模型AudioSep
    语言查询音频源分离(LASS)是计算听觉场景分析(CASA)的新范例。LASS 旨在根据自然语言查询从音频混合物中分离出目标声音,这为数字音频应用程序提供了自然且可扩展的接口。最近的 LASS 工作尽管在特定源(例如乐器、有限类别的音频事件)上取得了有希望的分离性能,但无法在开放域中分离音频概念。在这项工作中,我们介绍了 AudioSep,这是一种使用自然语言查询进行开放域音频源分离的基础模型。我们在大规模多模态数据集上训练 AudioSep,并广泛评估其在音频事件分离、乐器...
  • 与大型语言模型和机器人相关的资源、文章和观点列表

    与大型语言模型和机器人相关的资源、文章和观点列表
    我们收集了一些与大型语言模型(LLM)相关的文章,观点,视频和资源。其中一些链接还涵盖了其他生成模型。我们将定期更新此列表,以添加任何其他感兴趣的资源。本文是该系列的第三篇。(以前的版本在这里:v1 |v2.)什么是法学硕士以及它们是如何工作的什么是生成AI模型?,Kate Soule,来自IBM Technology的视频。大型语言模型简介,John Ewald,来自Google Cloud Tech的视频。什么是 GPT-4,它与 ChatGPT 有何不同?,A...
  • 拆解 OpenAI 的新董事会

    拆解 OpenAI 的新董事会
    在人工智能和技术领域掀起波澜的惊人事件中,人工智能领域的领先实体 OpenAI 最近的领导地位发生了重大转变。以萨姆·奥尔特曼 (Sam Altman) 戏剧性地重返首席执行官职位以及随之而来的董事会改组为标志,这些变化代表了该组织的关键时刻。OpenAI 以其在人工智能研究和开发方面的开创性工作而闻名,包括广泛认可的 ChatGPT 和 DALL-E 模型,站在人工智能进步的最前沿。因此,董事会的重组不仅仅是人员的变动,还标志着人工智能领域最具影响力的组织之一的方向、优先事...
  • 机器人烹饪方法YORI

    机器人烹饪方法YORI
    由加州大学洛杉矶分校的机器人与机械实验室一直在研究,既利用机器人友好的自动化,又利用人类技能,使事物味道正确,的烹饪机器人解决方案。   论文链接:https://spectrum.ieee.org/romela-cooking-robot...