📜  K-最近邻的数学解释(1)

📅  最后修改于: 2023-12-03 14:43:38.104000             🧑  作者: Mango

K-最近邻的数学解释

K-最近邻算法(K-Nearest Neighbors algorithm, KNN)是一种基本的分类和回归算法,它可以用来对新样本进行分类或回归。KNN算法的基本思想是,在特征空间中,如果一个样本的k个最近邻的样本中,大多数属于某一个类别,那么该样本也属于这个类别。

举个例子

假设我们有一个数据集,其中样本有两个特征x1和x2,类别有两类,红色和蓝色。我们希望对一个新的样本进行分类。

KNN-example

红色三角形是我们要分类的新样本。我们用KNN算法中的K值来确定需要考虑多少个最近邻样本的类别标签。假设K=3,我们就要找出离新样本最近的三个样本。这三个样本中有两个属于红色类别,一个属于蓝色类别,因此我们可以判定新样本属于红色类别。如果我们选择K=5,那么就要找出离新样本最近的五个样本,这五个样本中有三个属于蓝色类别,两个属于红色类别,所以我们可以判定新样本属于蓝色类别。

KNN算法的数学解释

我们可以用以下步骤来解释KNN算法的数学原理:

  1. 对于给定的新样本,我们用欧几里得距离(Euclidean Distance)来计算该样本与数据集中每个样本之间的距离:

    $$distance_{i}=\sqrt{(x_{1i}-x_{1})^2+(x_{2i}-x_{2})^2+...+(x_{ni}-x_{n})^2}$$

  2. 我们根据距离的大小对数据集中所有的样本进行排序。

  3. 我们选择离新样本最近的k个样本(即距离最小的k个样本)。

  4. 我们统计这k个样本中每个类别的数量。

  5. 我们将新样本分类为数量最多的类别。

KNN算法的优缺点

KNN算法的主要优点在于:

  • 简单易懂,易于实现。
  • 对于类别不平衡的数据集,效果尚可。
  • 对于没有明显分界线的数据集,效果尚可。

KNN算法的主要缺点在于:

  • 对于大规模的数据集,计算时间较长。
  • 对于属性较多的数据集,计算距离时可能会出现维度灾难(Curse of Dimensionality),因为高维空间中数据样本稀疏而分散,导致距离计算失效。
  • 对于噪声比较大的数据集,容易受到噪声的干扰。