KNN算法
K近邻算法(k-nearest neighbor,k-NN)是一种分类与回归的方法。K近邻法的输入为实例,输出为实例的类别,这里的类别可以取多类。分类时,对于新的实例,根据k个最近邻的训练数据的类别,通过多数表决的方法进行预测。K近邻算法实际上是利用训练数据对输入空间进行划分,并作为其分类的模型。
前面我们也有提到,k邻近是一种分类与回归的方法,但是接下来我们要讨论的是分类的这一方面。而对于回归来说,是比较简单的。通过找出一个样本的k个最近的邻居,将这些邻居的属性的平均值赋给该样本,就可以得到该样本的属性。可以将不同距离的邻居对该样本产生的影响赋予不同的权值,常见的做法就是取距离的倒数。
算法过程
输入:训练数据集T={ (x1,y1),(x2,y2),…,(xN,yN) },其中, xi∈Rn , yi∈Y= { c1,c2,…,ck }为输入数据的类别,i=1,2,…,N。实例x。
输出:实例x所属的类y。
(1)根据给定的距离度量,在训练集T中找出与x最邻近的k个点,涵盖这k个点的x邻域记作 Nk(x) ;
(2)在 N