📅  最后修改于: 2023-12-03 14:43:38.104000             🧑  作者: Mango
K-最近邻算法(K-Nearest Neighbors algorithm, KNN)是一种基本的分类和回归算法,它可以用来对新样本进行分类或回归。KNN算法的基本思想是,在特征空间中,如果一个样本的k个最近邻的样本中,大多数属于某一个类别,那么该样本也属于这个类别。
假设我们有一个数据集,其中样本有两个特征x1和x2,类别有两类,红色和蓝色。我们希望对一个新的样本进行分类。
红色三角形是我们要分类的新样本。我们用KNN算法中的K值来确定需要考虑多少个最近邻样本的类别标签。假设K=3,我们就要找出离新样本最近的三个样本。这三个样本中有两个属于红色类别,一个属于蓝色类别,因此我们可以判定新样本属于红色类别。如果我们选择K=5,那么就要找出离新样本最近的五个样本,这五个样本中有三个属于蓝色类别,两个属于红色类别,所以我们可以判定新样本属于蓝色类别。
我们可以用以下步骤来解释KNN算法的数学原理:
对于给定的新样本,我们用欧几里得距离(Euclidean Distance)来计算该样本与数据集中每个样本之间的距离:
$$distance_{i}=\sqrt{(x_{1i}-x_{1})^2+(x_{2i}-x_{2})^2+...+(x_{ni}-x_{n})^2}$$
我们根据距离的大小对数据集中所有的样本进行排序。
我们选择离新样本最近的k个样本(即距离最小的k个样本)。
我们统计这k个样本中每个类别的数量。
我们将新样本分类为数量最多的类别。
KNN算法的主要优点在于:
KNN算法的主要缺点在于: