KNN 分类学习算法
K近邻学习算法是一种基本的分类与回归学习算法,能力有限,简单介绍一下分类算法。K近邻学习算法是一种常用的监督学习算法。
算法机制
给定测试样本,基于某种距离度量找出训练集中的与其最靠近的K个训练样本,然后基于找到的K个近邻训练样本的类别信息来预测测试样本的类别。在分类任务中,一般采用投票法决定类别信息,根据K个近邻样本中出现最多的类别作为测试样本的类别。
算法特点
K-近邻算法没有明显的训练过程,是“懒惰学习”的著名代表。在训练阶段只保存训练样本的信息,并没有相关参数的训练。在测试时,将测试样本与每个训练样本进行比较,计算距离。算法中最重要的一个参数就是 K ,对于不同的K的选择,可能会有不同的结果,当 K = 1 时,称为最近邻算法。
K 值的选择
- 当 K 选择较小时,就相当于用较小的领域中的训练样本对测试样本进行预测,学习的“近似误差”会小,只有与测试样本较近的训练样本才会参与预测,但是,学习的“估计误差”会增大。预测结果会对近邻的实例很敏感,如果近邻的样本恰是噪声,则会引起误判。
总之,K值越小,意味着整体模型越复杂,容易发生过拟合现象。 - 当 K 选择较大时,就相当于用较大的领域中的训练样本对测试样本进行预测,可以减小学习的“估计误差”,但是学习的“近似误差”会增大。这时,与输入样本相差较远的样本点也会参与预测的过程,使预测发生错误。
K的增大,意味着整体模型变简单,但是模型过于简单会忽略大量的有用信息&#x