联系我们

AI 101

什么是KNN(K最近邻)?

mm

更新

 on

什么是K最近邻居(KNN)?

K最近邻居是一个 机器学习 的技术和算法 可用于回归和分类任务. K最近邻居 检查 选定数量的12博下载app点的标签 围绕目标12博下载app点,以便对12博下载app点所属的类进行预测。 K最近邻居(KNN)是概念上简单却功能非常强大的算法,由于这些原因,它是最受欢迎的机器学习算法之一。让我们深入研究KNN算法,并确切了解其工作原理。对KNN的运行方式有一个很好的了解,将使您了解KNN的最佳和最坏的用例。

K最近邻居(KNN)概述

Photo: Antti Ajanki AnAj via Wikimedia Commons, CC BY SA 3.0 (//commons.wikimedia.org/wiki/File:KnnClassification.svg)

让我们在2D平面上可视化12博下载app集。在图上画出一堆12博下载app点,并沿图散布在小簇中。 知识网络检查12博下载app点的分布,并根据提供给模型的参数将12博下载app点分为几组。然后为这些组分配标签。 知识网络模型所做的主要假设是彼此紧邻的12博下载app点/实例高度相似,而如果12博下载app点与另一组相距较远,则它们与这些12博下载app点不相似。

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

知识网络是一个 监督学习 算法,这意味着12博下载app集中的示例必须具有分配给它们的标签/它们的类必须是已知的。关于KNN,还有其他两点要了解。首先,KNN是一种非参数算法。这意味着使用模型时不会对12博下载app集做出任何假设。而是完全根据提供的12博下载app构建模型。其次,使用KNN时不会将12博下载app集分为训练集和测试集。 知识网络在训练集和测试集之间未做任何概括,因此,当要求模型进行预测时,也会使用所有训练12博下载app。

知识网络算法如何运作

知识网络算法的执行过程分为三个主要阶段:

  1. 将K设置为所选的邻居数。
  2. 计算提供/测试示例与12博下载app集示例之间的距离。
  3. 排序计算的距离。
  4. 获取前K个条目的标签。
  5. 返回有关测试示例的预测。

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

用于执行KNN的确切数学运算取决于所选的距离度量。如果您想进一步了解指标的计算方式,可以阅读一些最常用的距离指标,例如 欧几里得, 曼哈顿明可夫斯基.

为什么K的价值很重要

使用KNN的主要限制是,如果K值不正确(要考虑的邻居数错误),则可能会选择该值。如果发生这种情况,返回的预测可能会大大偏离。使用KNN算法时,选择合适的K值非常重要。您想要选择一个K值,以最大程度地提高模型对看不见的12博下载app进行预测的能力,同时减少错误产生的次数。

Photo: Agor153 via Wikimedia Commons, CC BY SA 3.0 (//en.wikipedia.org/wiki/File:Map1NN.png)

较低的K值表示KNN所做的预测不稳定和可靠。为了弄清楚为什么会这样,请考虑以下情况:目标12博下载app点周围有7个邻居。假设KNN模型的K值为2(我们要求它查看两个最近的邻居进行预测)。如果绝大多数邻居(七分之五)属于Blue类,但是两个最接近的邻居恰好是Red,则模型将预测查询示例为Red。尽管有模型的猜测,但在这种情况下,蓝色将是更好的猜测。

如果是这样,为什么不选择我们可以选择的最高K值呢?这是因为告诉模型考虑过多的邻居也会降低准确性。随着KNN模型考虑的半径增加,它将最终开始考虑比目标12博下载app点更接近其他组的12博下载app点,并且将开始发生误分类。例如,即使最初选择的点在上面的红色区域之一中,如果K设置得太高,该模型也会进入其他区域来考虑点。当使用KNN模型时,尝试使用不同的K值来查看哪个值使模型具有最佳性能。

知识网络利弊

让我们研究一下KNN模型的一些利弊。

优点:

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

知识网络高度准确且易于使用。易于解释,理解和实施。

知识网络不会对12博下载app做任何假设,这意味着它可以用于各种各样的问题。

缺点:

知识网络存储大部分或全部12博下载app,这意味着该模型需要大量内存,并且计算量大。大型12博下载app集也可能导致预测花费很长时间。

事实证明,KNN对12博下载app集的规模非常敏感,并且与其他模型相比,它很容易被不相关的特征所抛弃。

K最近邻居(KNN)的摘要

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

专门从事以下工作的Blogger和程序员 机器学习 深度学习 话题。 Daniel希望帮助他人将AI的力量用于社会公益。