一、KNN算法概述
KNN算法(k-NearestNeighbor),即K最近邻,是一种监督学习(Supervised Learning)算法字面意思是与计算点最近的k个相邻点,意思是说每个样本点都可以用与之最近的k个相邻的点来表示。
KNN是一种分类算法(Classification Algorithm),它所谓的学习过程是基于输入的实例的,类似于懒惰学习(Lazy Learning),即KNN没有明显的学习过程,也就是说没有训练阶段,数据集事先已有了分类和特征值,待收到新样本后直接进行处理,与急切学习(eager learning)相对应。
KNN算法原理比较简单,但是可以解决很多比较经典的问题。KNN的原理大致是:计算待分类的数据点和训练数据集(Training Dataset)中的每个数据点的欧式距离(Euclidean Distance,又称欧几里得距离),然后选取最近的k个数据点,并对这k个点的类别进行频率统计,将这k个点中出现频率最大的类别作为待分类点的距离。
从百度百科中找到了这张图加深理解。