| 查看: 1096 | 回复: 0 | ||
wupengjacob木虫 (小有名气)
|
[求助]
哪位大神会kdtree,能否帮我解释一下kdtree
|
|
由于此例简单,数据维度只有2维,所以可以简单地给x,y两个方向轴编号为0,1,也即split={0,1}。 (1)确定split域的首先该取的值。分别计算x,y方向上数据的方差得知x方向上的方差最大,所以split域值首先取0,也就是x轴方向; (2)确定Node-data的域值。根据x轴方向的值2,5,9,4,8,7排序选出中值为7,所以Node-data = (7,2)。这样,该节点的分割超平面就是通过(7,2)并垂直于split = 0(x轴)的直线x = 7; (3)确定左子空间和右子空间。分割超平面x = 7将整个空间分为两部分,如图2所示。x < = 7的部分为左子空间,包含3个节点{(2,3),(5,4),(4,7)};另一部分为右子空间,包含2个节点{(9,6),(8,1)}。 图2 x=7将整个空间分为两部分 如算法所述,k-d树的构建是一个递归的过程。然后对左子空间和右子空间内的数据重复根节点的过程就可以得到下一级子节点(5,4)和(9,6)(也就是左右子空间的'根'节点),同时将空间和数据集进一步细分。如此反复直到空间中只包含一个数据点,如图1所示。最后生成的k-d树如图3所示。 图3 上述实例生成的k-d树 注意:每一级节点旁边的'x'和'y'表示以该节点分割左右子空间时split所取的值。 为什么第二步中值选的是7?第三步中,在{(9,6),(8,1)}点选择中值是6?多谢各位了! |
» 猜你喜欢
售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急
已经有4人回复
科研人应该花精力去思考如何解决问题,而不是去凝练问题
已经有18人回复
售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急
已经有9人回复
售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急
已经有15人回复
售SCI文章,我:8O.5.5.1O.54,科目全,可十急
已经有5人回复
售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急
已经有5人回复
面上没中,邀请各位路过的虫友分析一下分数
已经有13人回复
两块石头
已经有8人回复
初秋的晨风
已经有6人回复
学科评审组评审是指会评吗?
已经有9人回复










回复此楼