K Nearest Neighbour 缩写为 KNN,也称为K近邻算法。大体意思,将新样本与训练集中已知样本进行比较,找到最接近的已知样本,根据已知样本的属性预测新样本的属性。
KNN算法如何进行新样本与已知样本的比较?用数学上的欧氏距离计算两个样本之间的远近,距离越近越相似。
欧氏距离:简单说就是xy坐标系上两点之间的距离计算,x1y1点、x2y2点,x2减x1差的平方,再加上y2减y1差的平方,得到的和再开平方根。欧氏距离不光可以算二维坐标系也可以算多维坐标系,如三维时就是x、y、z。
KNN算法计算样本间的距离时,是新样本与所有训练集样本进行逐个计算,得到所有训练集样本与新样本间的欧氏距离。那么这时要怎么找出新样本与训练集中那个样本相近?通过数字大小比较,越小越相近。那么是不是说选一个数值最小的样本属性就可以得到新样本目标值?并不是的,为了防止训练集中数据可能存在的异常,不允许只选择一个样本,会从相近的样本中选K个样本,再从这K个样本中选择最多的一种属性作为新样本的目标值。
KNN算法中的K指的就是K个样本,K属于算法中人为控制的变量,即超参数。
因此,为KNN算法训练的模型设定一个合适的超参数是很重要的,这直接导致模型训练的最终结果是泛化拟合、欠拟合、过拟合。