实现k近邻法时,主要考虑的问题是如何对训练数据进行快速的k近邻搜索,这点在特征空间的维数大及训练数据容量大时尤其重要。
构造kd树
构造根节点,使根节点对应于k维空间中包含所有实例点的超矩形区域:通过下面的递归方法,不断地对k维空间进行切分,生成子节点。在超矩形区域上选择一个坐标轴和在此坐标轴上的一个切分点,确定一个超平面,这个超平面通过选定的且分店并且垂直于选定的坐标轴,将当前超矩阵区域切分为左右两个子区域;这时,实例被分到两个子区域。这个过程知道子区域内没有实例时终止。在此过程中,将实例保存在相应的节点上。
网友评论