K-近邻学习(KNN)

K-近邻学习算法是一种基本的监督学习方法,用于分类任务。它通过找到测试样本最接近的K个训练样本来预测类别,其中K值的选择影响模型复杂度。K值小可能导致过拟合,而大则可能忽略有用信息。常见的K近邻实现包括线性扫描和使用kd树提高搜索效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

KNN 分类学习算法

K近邻学习算法是一种基本的分类与回归学习算法,能力有限,简单介绍一下分类算法。K近邻学习算法是一种常用的监督学习算法。

算法机制

给定测试样本,基于某种距离度量找出训练集中的与其最靠近的K个训练样本,然后基于找到的K个近邻训练样本的类别信息来预测测试样本的类别。在分类任务中,一般采用投票法决定类别信息,根据K个近邻样本中出现最多的类别作为测试样本的类别。

算法特点

K-近邻算法没有明显的训练过程,是“懒惰学习”的著名代表。在训练阶段只保存训练样本的信息,并没有相关参数的训练。在测试时,将测试样本与每个训练样本进行比较,计算距离。算法中最重要的一个参数就是 K ,对于不同的K的选择,可能会有不同的结果,当 K = 1 时,称为最近邻算法。

K 值的选择

  1. 当 K 选择较小时,就相当于用较小的领域中的训练样本对测试样本进行预测,学习的“近似误差”会小,只有与测试样本较近的训练样本才会参与预测,但是,学习的“估计误差”会增大。预测结果会对近邻的实例很敏感,如果近邻的样本恰是噪声,则会引起误判。
    总之,K值越小,意味着整体模型越复杂,容易发生过拟合现象。
  2. 当 K 选择较大时,就相当于用较大的领域中的训练样本对测试样本进行预测,可以减小学习的“估计误差”,但是学习的“近似误差”会增大。这时,与输入样本相差较远的样本点也会参与预测的过程,使预测发生错误。
    K的增大,意味着整体模型变简单,但是模型过于简单会忽略大量的有用信息,是分类器的性能下降。

在实际应用中,K 一般取一个较小的值。通常采用交叉验证来选取最优的 K 值。

近似误差:可以理解为对现有训练集的训练误差
估计误差:可以理解为对测试集的测试误差
    近似误差关注训练集,近似误差过小会容易出现过拟合现象,估计误差关注测试集和泛化问题,估计误差小,说明对未知数据的预测能力较好。

K

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值