机器学习中的K近邻与朴素贝叶斯方法
1 K近邻(k-NN)方法
1.1 k-NN概述
k-NN是一种重要且简单的分类和回归方法。其基本做法是,对于给定的训练实例点和输入实例点,先确定输入实例的k个最近训练实例点,然后利用这k个训练实例的多数类别来预测输入实例的类别。
k-NN模型对应基于训练数据集对特征空间的划分。当训练集、距离度量、k值和分类决策规则确定时,k-NN的结果是唯一确定的。k-NN的三个要素为距离度量、k值的选择和分类决策规则。常用的距离度量有欧几里得距离和更一般的Lp距离。k值较小时,k-NN模型更复杂;k值较大时,模型更简单。k值的选择反映了近似误差和估计误差之间的权衡,通常通过交叉验证选择最优的k值。常用的分类决策规则是多数投票,对应经验风险最小化。
1.2 k-NN的kd树实现
在实现k-NN时,主要关注的是如何在训练数据上进行快速的k-NN搜索,特别是当特征空间维度和训练数据量较大时,这一点尤为重要。
1.2.1 线性扫描方法
最简单的k-NN实现方法是线性扫描,即计算输入实例与每个训练实例之间的距离。但当训练集较大时,这种计算非常耗时,不可行。
1.2.2 kd树方法
为提高k-NN搜索的效率,可以考虑使用特殊结构来存储训练数据并减少距离计算,其中kd树方法就是一种。
1.2.2.1 构建kd树
kd树是一种用于存储k维空间中实例点的树状数据结构,用于快速检索。它是一棵表示k维空间划分的二叉树,构建kd树相当于用垂直于坐标轴的超平面不断分割k维空间,形成一系列k维超矩形区域,每
超级会员免费看
订阅专栏 解锁全文
7225

被折叠的 条评论
为什么被折叠?



