简述K最近邻(cs231n笔记)

k最近邻(k-Nearest Neighbor,KNN)

K最近邻指的是用该样本最接近的K个邻居代表,如下图所示。

若K=3,如黄圈所示,红色占了2/3,那么我们认为中间未知的黑色样本应该与红色三角形为同一类型。

若K=5,如绿圈所示,蓝色占了3/5,那么我们认为中间未知的黑色样本应该与蓝色星状为同一类型。


因此,在本算法中,有两个超参数,

1)K的选取,由上图可知,K的取值不同,将会影响最终类别的划分。

2)距离的计算方法,近邻的概念是建立在距离这一概念上的,何谓近有不同的度量方法。最常见的有三种:

a)欧氏距离  


b)曼哈顿距离(城市街区距离)


c)切比雪夫距离(棋盘距离)


KNN算法的特点:

KNN算法思路简单,但是算法较慢,这主要是因为每一次预测都要计算与训练数据集中所有图像的距离。

KNN算法需要注意的问题如下:

1)需要预处理数据,例如0均值,单位方差处理

2)高维数据可以用PCA降维

3)若参数较多,需要保证测试数据集数据足够多,当训练数据少时,可采用交叉验证的方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: K近邻算法(K-Nearest Neighbor, KNN)的主要思想是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。KNN算法对未知类别属性的数据集中的每个点依次执行以下操作:1. 计算已知类别数据集中的点与当前点之间的距离; 2. 按照距离递增次序排序; 3. 选取与当前点距离最小的K个点; 4. 确定前K个点所在类别的出现频率; 5. 返回前K个点出现频率最高的类别作为当前点的预测分类。 ### 回答2: K近邻算法的主要思想是基于样本的相似性原则,即如果一个样本在特征空间中的K个最相邻的样本中的大多数属于某一个类别,那么该样本也属于该类别。 具体的K近邻分类算法可以简要描述如下: 1. 首先,给定一个训练数据集,其中包含有标记的样本和它们的属性信息。 2. 对于一个未知类别的样本,计算它与训练数据集中每个样本的距离(通常使用欧氏距离或曼哈顿距离)。 3. 根据距离远近,选择与未知样本最近的K个样本。 4. 统计这K个样本所属的类别,并将未知样本分类为该类别。 K最近邻分类算法的伪代码如下: 1. 输入:训练数据集(包含标记样本和它们的属性信息),待分类样本,最近邻数K。 2. 根据训练数据集计算待分类样本与每个训练样本的距离。 3. 根据距离的大小排序,选取距离最近的K个训练样本。 4. 统计K个训练样本所属的类别。 5. 将待分类样本划分为统计结果最多的类别。 需要注意的是,在实际应用中,K近邻算法在计算距离时可能需要进行归一化处理,以避免某些特征对距离计算的影响过大。另外,选择适当的K值也是一个需要考虑的问题,一般需要通过交叉验证等方法来确定最优的K值。 ### 回答3: K近邻算法是一种监督学习算法,用于解决分类和回归问题。其主要思想是基于实例的学习,通过计算待预测样本与已知样本集中各个样本的距离,选取距离最近的K个样本作为邻居,根据邻居的标签来判断待预测样本的类别或进行值的预测。 具体的K最近邻分类算法步骤如下: 1. 确定K值和属性数: 选择适当的K值,一般通过交叉验证方法来确定。确定每个元组的属性数以便计算距离。 2. 计算距离: 根据给定的属性数,计算待预测样本与已知样本集中每个样本的距离。常用的距离计算方法有欧氏距离、曼哈顿距离、闵可夫斯基距离等。 3. 选取邻居: 根据计算得到的距离,选择距离最近的K个样本作为邻居。 4. 确定类别或预测值: 对于分类问题,根据K个邻居的标签进行投票,选择票数最多的类别作为待预测样本的类别。 对于回归问题,根据K个邻居的值进行加权平均,得到待预测样本的预测值。 K最近邻分类算法的优点是对于非线性问题表现良好,并且简单易于理解和实现。然而,该算法的缺点是计算时间复杂度较高,尤其是在有大量训练样本的情况下。此外,K值的选择对算法性能有较大影响,选择不当可能导致欠拟合或过拟合的问题。因此,在使用K最近邻算法时需要谨慎选择K值,并对数据进行适当的预处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值