分类算法
没有显示学习的过程,实际的工作原理是利用训练数据对特征向量空间进行划分,并将其划分的结果作为其最终的算法模型。
KNN分类算法
对于需要预测的输入向量x,我们只需要在训练数据集中寻找K个与向量x最近的向量的集合,然后把x的类标预测为这k个样本中类标数最多的那一类。
k值的选取
交叉验证
一般我们选择K在较小的范围内,同时在测试集上准确率最高的一个确定为最终的算法超参数K。
距离度量
KNN算法核心:KDTree
K最近邻多数投票的思想。所以算法的关键是在给定的距离度量下,对预测实例如何准确的找到它的最近的k个邻居。
使用特殊的数据结构存储训练数据,用来减少搜索次数,采用的是KDTree树。
KD树是一种二叉树,表示对K维空间的一个划分,构造KD树,是一个平衡二叉树,但是在搜索的时候并不是最高效的。
在此加个源码: