思想是在训练数据集中找到与该实例最邻近的K个实例,这K个实例的多数属于某个类,就把该输入实例分类到这个类中(这就类似于现实生活中少数服从多数的思想)。
但k怎么确定的,k为多少效果最好呢?(其实是超参数,不能用数据进行调整的,只能用交叉验证推算)
如果我们选取较小的k值,那么就会意味着我们的整体模型会变得复杂,容易发生过拟合!(容易被噪声占据优势)
如果我们选取较大的k值,就相当于用较大邻域中的训练数据进行预测,这时与输入实例较远的(不相似)训练实例也会对预测起作用,使预测发生错误,k值的增大意味着整体模型变得简单。不解释。
k值既不能过大,也不能过小,要恰当好。通常采取交叉验证法来选取最优的k值。(也就是说,选取k值很重要的关键是实验调参,类似于神经网络选取多少层这种,通过调整超参数来得到一个较好的结果)
所谓的最近邻又是如何来判断给定呢?
这个就是各种距离,两个点之间的距离还是很好计算的。
而且还有归一化的问题,这个不难( x − a b − a \frac{x-a}{b-a} b−