KNN算法之KD树

孤街浪徒 提交于 2019-11-26 21:00:54

KD树算法是先对数据集进行建模,然后搜索最近邻,最后一步是预测。

KD树中的K指的是样本特征的维数。

一、KD树的建立

m个样本n维特征,计算n个特征的方差,取方差最大的第k维特征作为根节点。选择第k维特征的中位数作为切分点,小于中位数的放左子树,大于中位数的放右子树,递归生成。

举例

有二维样本6个,{(2,3),(5,4),(9,6),(4,7),(8,1),(7,2)}:

1、找根节点,6个数据点在x、y维度上的方差分别是6.97,5.37,x维度方差最大,因此选择x维进行键树;

2、找切分点,x维中位数是(7,2),因此以这个点的x维度的取值进行划分;

3、x=7将空间分为左右两个部分,然后递归使用此方法,最后结果为:

二、搜索最近邻

kd树生成之后就可以预测测试集里的目标样本了。

首先找到包含目标样本的

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!