统计学习方法第三章 k近邻法
k近邻法
k近邻算法
输入:训练数据集;实例特征向量x;
输出:实例x所属的类y。
(1)根据给定的距离度量,在训练集T中找出与x最邻近的k个点,涵盖这k个点的x的邻域记作Nk(x);
(2)在x的邻域中根据分类决策规则决定x的类别y。
k近邻法的特殊情况是 k=1 的情形,称为最近邻算法。对于输入的实例点x,最近邻法将训练集中与x最邻近点的类作为x的类。
k近邻没有显式的学习过程。
3.2 k近邻模型
k近邻模型使用的模型实际上对应于对特征空间的划分。模型由三个基本要素——距离度量、k值的选择和分类决策规则决定。
每个训练实例拥有一个单元,所有训练实例点的单元构成对特征空间的一个划分。
最近邻法将实例xi的类yi作为其单元中所有点的类标记。
距离有:欧式距离,Lp距离、Minkowski距离。
k值的选择会对k近邻法的结果产生重大影响。
在应用中,k值一般取一个比较小的数值。通常采用交叉验证法来选取最优的k值。
3.2.4 分类决策规则
规则往往是多数表决,即由输入实例的k个邻近的训练实例中的多数类决定输入实例的类。
多数表决规则等价于 经验缝线最小化。
3.3 k近邻法的实现:kd树
k近邻法最简单的实现方法是线性扫描。
为了提高k近邻搜索的效率,可以考虑使用特殊的结构存储训练数据,以减少计算距离的次数。其中一种方法就是kd树方法。
3.3.1 构造kd树
算法3.2 (构造平衡kd树)
作者:白雪儿
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
雪儿言
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!