KNN(K-nearest neighbor)的基本思想非常的简单朴素,即对于一个待预测的样本
,在训练集中找到
距离其最近的
个近邻 ,得票最高的类作为输出类别即可。当
时,则称为最近邻。OK,到这里原理就说完了,没错就是这么简单。
Naive实现
最简单的实现仅需要遍历所有的点,按距离排序取前k个即可,简直美滋滋。
import numpy as np
# x is the data to be classified.
# X is the train data
# p is the norm parameter
KNN=sorted(X,key=lambda xi:np.linalg.norm(x-xi,p))[:k]