图像分类:K最近邻算法-CS231N笔记

KNN(K最近邻)算法是简单但成熟的机器学习方法,常用于分类。在图像分类中,KNN表现不佳,主要因为计算时间长、L1/L2距离度量对图像相似度不敏感以及维度灾难问题。合适的距离度量如L2在某些场景下更可靠,但并不完全适应图像。选择合适的K值和距离度量是关键,但过拟合训练数据和错误的超参数选择策略会影响性能。交叉验证在小数据集上提供稳定性能评估,但在大规模模型中不常用。尽管存在问题,KNN仍能在适当调整后用于特定图像分类任务。
摘要由CSDN通过智能技术生成

K最近邻(k-Nearest Neighbour,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。

用官方的话来说,所谓K近邻算法,即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例(也就是上面所说的K个邻居), 这K个实例的多数属于某个类,就把该输入实例分类到这个类中。 K值越大,边界越平滑。

注意:KNN在图像分类中表现不好。

一旦我们用KNN来区分图片的时候,得先找到计算图片差异的方法,比如L1距离,这个计算的是两幅图片所有像素之间的差的绝对值的总和,此计算方法对坐标比较依赖,一旦改变了坐标,这个值就不一样了,以此不是很可靠;但是另外一种常见的选择是L2距离,也就是欧式距离,求的是图片的所有像素的差的平方和的平方根,这个值就不再依赖于坐标系,比较可靠了。如果你输入的特征向量,如果向量中的一些值有一些重要的意义,那么也许L1可能更加合适;但是如果它只是某个空间中的一个通用向量,而你不知道其中的不同的元素,你不知道它们实际上代表的含义,那么L2可能更加自然一些。我们可以使用不同的距离度量将KNN分类器泛化到许多不同的数据类型上,不仅仅是向量和图像,比如想对文本进行分类,那么你唯一需要做的就是对KNN指定一个距离函数,这个函数可以测量两段话或者两句话或者类似的东西之间的距离。因此,简单地通过指定不同的距离度量,我们便可以很好地应用这个算法,在基本上任何类型的数据上,尽管这是一种简单的算法,但是总的来说,当你研究一个新的问题的时候,尝试它是一件很好的事情。

在几何上,我们使用不同的记录度量的时候,会出现不同的决策边界。使用L1度量时,这些决策边界倾向于跟随坐标轴,而根据L2度量的决策边界就自然很多。

当我们选择不同的K值以及不同的距离度量的时候,这个决策边界就不同,那么我们怎么根据自己的数据来选择这些超参数呢?超参数就是不能通过训练数据而得到的参数。我们要提前为算法做出的选择。很多人的做法就是根据自己的数据,选择不同的超参数,然后进行训练,看哪一个值是最好的。但是其实这个一种非常糟糕的算法,比如,在之前的KNN算法中,假如K=1,我们总能完美分类训练数据,所以如果我们采用这一策略总是选择K&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值