第三章 K近邻法(k-nearest neighbor)

来源:互联网 发布:淘宝客邻尚品的货真假 编辑:程序博客网 时间:2024/05/06 01:51
1、K近邻法(k-nearest neighbor):是一种基本分类与回归方法。
        输入:为实例的特征向量,对应于特征空间的点;
        输出:为实例的类别,可以取多类。
        基本思想:假设给定一个训练数据集,其中的实例类别已定。分类时,对新的实例,根据其k个最近邻的训练实例的类别,通过多数表决等方式进行预测。因此,k最近邻法不具有显式的学习过程。实际上利用训练数据集对特种线缆空间进行划分,并作为其分类的“模型”。
        三要数:k值的选择、距离度量及分类决策规则
        K近邻模型实际上对应于对特征空间的划分。
2、单元:特种空间中,对每个训练实例点x_i,距离该点比其他点更近的所有点组成一个区域,叫作单元
      划分:每个训练实例点拥有一个单元,所有训练实例点的单元构成对特征空间的一个划分。
3、特征空间中两个实例点的距离是两个实例点相似程度的反映。
      不同的距离度量所确定的最近邻点是不同的
4、k值的选择会对k近邻法的结果产生重大影响。如果选择较小的k值,就相当于用较小的领域中的训练实例进行预测,“学习的近似误差会减小,只有与输入实例较接近(相似的)训练实例才会对预测结果起作用。但缺点是“学习”的估计误差会增大,预测结果会对近邻的实例点非常敏感。如果近邻的实例点恰巧是噪声,预测就会出错。换句话说,k值的减小就意味着整体模型变得复杂,容易发生过拟合。
        如果k值选择较大,就相当于用较大的领域中的训练实例进行预测。优点是减少学习估计误差。缺点是学习的近似误差会增大。这时与输入实例较远的(不相似的)训练实例也会对预测起作用,使预测发生错误。k值的增大意味着整体的模型变得简单。
        如果k=N,那么无论输入实例是什么,都将简单地预测它属于在训练实例中最多的类。这时,模型过于简单,完全忽略训练实例中的大量有用信息,是不可取的。
        应用中,k值一般取一个比较小的数值,通常采用交叉验证法来选取最优的k值。
5、分类决策规则:多数表决,即由输入实例的k个邻近的训练实例中的多数类决定输入实例的类。
6、实现k近邻法,主要考虑的问题是如何对训练数据进行快速k近邻搜索。这点在特征空间的维数大及训练数据容量大时尤其必要。
7、kd树:是一种对k维空间中的实例点进行存储以便对其进行快速检索的树形结构数据。是二叉树,表示对k维空间的一个划分。
      构造 kd树:相当于不断地用垂直于坐标轴的超平面将k维空间切分,构成一系列的k维超矩形区域。kd树的每个结点对应于一个k维超矩形区域。
       构造kd树的方法:构造根结点,使根结点对应于k维空间中包含所有实例点的超矩形区域;通过下面的递归方法,不断地对k维空间进行切分,生成子结点。在超矩形区域(结点)上选择一个坐标轴和在此坐标轴上的一个切分点,确定一个超平面,这个超平面通过选定的切分点并垂直于选定的坐标轴,将当前超矩形区域切分为左右两个子区域(子结点);这时,实例被分到两个子区域。这个过程直到子区域没有实例时终止(终止时的结点为叶结点)。在此过程中,将实例保存在相应的结点上。通常,依次选择坐标轴对空间切分,选择训练实例点在选定坐标轴上的中位数为切分点,这样得到的kd树是平衡的。
0 0