给定训练集,对于新输进来的样例,寻找训练数据集里面与之距离最近的K个样例,根据多数表决规则,如果K个实例多数属于某个类,则把该输入实例划分为这个类。
模型三要素是:距离度量,K值的选择,分类决策规则。
距离度量:使用的距离是欧式距离,或者是更一般的Lp距离或Minkowski距离
p为2则为欧式距离,p=1为曼哈顿距离,p为无穷大则为各个坐标距离的最大值。
K值的选取:
k值减小意味着模型变得复杂,容易发生过拟合,选择较大的k值,可以减小学习的估计误差,但缺点是学习的近似误差会增大,k值一般取一个较小的值,通常使用交叉验证法来选择最优的k值。
K近邻的实现需要考虑如何快速地搜索k个最近邻点。kd树是一种便于对k维(注意这个k是指特征维度,而非KNN里面的k) 空间中的数据进行快速检索的数据结构。kd树是二叉树,表示对k维空间的一个划分,其每个节点对应于k为空间划分中的一个超矩形区域。利用kd树可以省去对大量数据点的搜索,从而减少搜索的计算量。
kd树使用于训练实例数远远大于空间维度的k近邻搜索。当空间维度接近训练实例数时,它的效率会迅速下降,几乎接近线性扫描。
来源:https://blog.csdn.net/pku_langzi/article/details/100030835