| 查看: 1080 | 回复: 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?多谢各位了! |
» 猜你喜欢
这样的filecode谁见过
已经有17人回复
应该是93bebmhtak前后十一个字符比较关键
已经有4人回复
关于代码变化问题,想知道的进来
已经有16人回复
fileCode有新解读?
已经有18人回复
关于filecode,很负责任的告诉大家
已经有7人回复
【2027博士申请】纳米药物递送方向
已经有5人回复
关于豆爷回答的JTJC与%2F数量
已经有7人回复
2026国自然放榜时间
已经有3人回复
国基金的申报应该改成非等额制,评价高的钱多评价低的钱少,但是增加资助率
已经有7人回复
好奇怪的filecode
已经有4人回复










回复此楼
20