k近邻法(k-NN)是一种基本分类与回归方法。算法思想:给定一个训练数据集,对新的输入实例,在训练数据集中找到与其最邻近的k个实例,这k个实例的多数属于某个类,就把该输入实例分为哪个类。
k近邻的特殊情况是k=1的情形,称为最近邻算法。
k近邻算法没有显式的学习过程。
1.模型:k近邻法使用的模型对应于对特征空间的划分。
k近邻法中,当训练集、k值、距离度量(如欧式距离)及分类决策规则确定后,对于任何一个新的输入实例,它所属的类唯一地确定。
模型的三个基本要素:k值的选择、距离度量以及分类决策规则。
(1)k值的选择
k值较小,意味着整体模型变得复杂,容易发生过拟合;k值较大,意味着整体模型变得简单,容易发生欠拟合。k值的选择反映了对近似误差和估计误差之间的权衡,通常由交叉验证选择最优的k。
(2)距离度量
特征空间中两个实例点的距离是两个实例点相似程度的反映。k近邻模型使用的距离是欧氏距离,更一般的距离是闵可夫斯基距离。
不同的距离度量所确定的最近邻点是不同的,如下图所示:
2.策略:(3)分类决策规则
k近邻法中的分类决策规则大多选择多数表决,即由输入实例的k个近邻的训练实例中的多数类决定输入实例的类,对应于经验风险最小化。
3.算法:
为了提高k近邻的搜索效率,使用kd树存储训练数据,kd树是对k维空间中的实例点进行存储以便对其进行快速检索的树形数据结构。kd树是二叉树,表示对k维空间的一个划分,其每个结点对应于k维空间划分中的一个超矩形区域。
kd树的每轮中本次的切分域的选择将计算待切分空间内的点此轮未被切分维度上的方差,找到方差最大的维度作为此次的切分域。方差较大,表明在该维度上的点的分散度较高,按该维度切分分辨率较高。(注:特征选择中,方差选择法也是这个原理。)
kd树的最近邻搜索算法:
kd树的平均计算复杂度是O(logN),N为训练实例数。kd树更适合于训练实例数大于空间维数时的k近邻搜索。
机器学习算法总结3:k近邻法
最新推荐文章于 2023-06-12 15:47:45 发布