一、什么是KNN
K最近邻(K-Nearest Neighbors,KNN)是一种简单而强大的机器学习算法,它基于一个基本的假设:相似的样本通常在特征空间中彼此接近。KNN算法通过查找一个样本的最近K个邻居来预测该样本的类别或属性。
二、KNN算法流程
KNN没有显式的训练阶段,它只需要存储训练数据集。因此,在数据集规模和特征数量相同的条件下,KNN建模训练的速度要比其他模型快很多,基本数据集读完就等于完成了模型的训练。
1、距离度量
KNN算法使用距离度量来确定数据点之间的相似性。最常见的距离度量是欧几里得距离,也可以使用曼哈顿距离、切比雪夫距离或余弦相似度等。
2、选择K值
K是一个超参数,表示在进行决策时考虑的最近邻居的数量。K的选择对模型的性能有很大影响,一般我们会根据任务指标去确定最佳的K,使用网格搜索之类的方法进行调参即可。
3、决策
对于分类任务,KNN算法会根据K个最近邻居的类别,通过多数投票法来预测新样本的类别。对于回归任务,KNN算法会计算K个最近邻居的目标值的平均值,作为新样本的目标值。
三、KNN算法优化
KNN的预测过程中,对于每一个新样本,都会依次计算该样本与训练集中每一条样本的距离,从而选出最邻近K个样本。显