1. 第一个问题就是k值的选取问题?

  2. 怎么快速找到k个邻居,尤其是在特征空间维数大及训练数据容量大时尤其必要。



(1)k值的问题:当k值很小的时候,就相当于在较小的领域中训练实例进行预测,学习的近似误差会减小,只有与输入实例较近的训练实例才会对预测结果起作用(反过来想,离的越近,肯定越相似,离得越远,相似度就差很大)。但缺点是学习的估计误差会增大,预测结果会对近邻的实例点非常敏感,如果近邻的实例点恰巧是噪声,预测就会出错。(有噪声,就比较复杂),模型越复杂,越容易发生过拟合

如果选择较大,就相当于用较大领域中的训练实例进行预测。其优点是可以减少学习的估计误差

k越大,这时与输入实例较远的训练实例也会对                                                                                    (可以降低噪声)就意味着整体模型变得简单


一般来说k值是通过交差验证法来获得的。一般取k值小于sqrt(n)

(2)如何快速的搜索K个邻居?

KD树是一种很好的办法