抗巨细胞病毒抗体igg高是什么意思| 掉头发挂什么科| 太妃糖为什么叫太妃糖| 7月27日什么星座| 推举是什么意思| 阳痿吃什么药好| 金生水是什么意思| 头晕脑胀吃什么药| 年柱亡神是什么意思| 脂膜炎是什么原因引起的| 为什么男人喜欢邓文迪| 胎监不过关是什么原因| 梅花象征着什么| 不负卿是什么意思| 为什么会连续两天遗精| 女用避孕套是什么样的| 女团是什么意思| 口苦吃什么中药| 腹腔淋巴结肿大是什么原因| amv是什么意思| 香叶是什么树的叶子| 黑长直是什么意思| 脂溢性脱发用什么洗发水| 仓鼠吃什么东西| 什么样的春光| 氧分压是什么意思| 瘰疬是什么病| 分明的意思是什么| 腊肉配什么菜炒好吃| 检查肺部应该挂什么科| 什么叫飞机杯| 可望不可求是什么意思| 早搏吃什么药效果好| 古代警察叫什么| 嗜酸性粒细胞偏高是什么意思| 咳嗽有痰吃什么药效果好| 拔苗助长告诉我们什么道理| 狭隘是什么意思| 寻麻疹是什么症状| 胆固醇高是什么原因| 锁骨中间的窝叫什么| 股市pe是什么意思| md是什么意思| 舒筋健腰丸主治什么| 总师是什么级别| 夏天喝什么茶最好| 基药是什么意思| 去草原穿什么衣服拍照好看| 高危hpv阳性是什么意思| 苦瓜和什么不能一起吃| 身体乳是什么| 诛是什么意思| 梦见很多坟墓是什么意思| naprogesic是什么药| 脑瘫是什么| 十一月份属于什么星座| 经常吃维生素c有什么好处和坏处| 什么鞋不能穿| 火影忍者什么时候出的| 饮水思源是什么意思| 晕车药吃多了有什么副作用| 用什么水和面烙饼最软| 吃什么能生发| 连城诀为什么不火| 梦见孕妇是什么预兆| b型和ab型生的孩子是什么血型| 关节外科主要看什么| 大致正常心电图是什么意思| 不孕不育做什么检查| 什么叫前庭功能| 9月什么星座| 北五行属什么| tu是什么意思| 95年属什么的| 音节是指什么| 嘘寒问暖是什么意思| noon是什么意思| 不可多得是什么意思| 乙肝是什么症状| 天什么地| 有核红细胞是什么意思| 小孩咳嗽有痰吃什么药| 洋溢着什么样的笑容| adp是什么意思| 教皇是什么意思| 肠胃炎看什么科| ons是什么| 脊柱疼是什么原因| 337是什么意思| 阴沉木是什么木头| 麒麟到了北极会变成什么| 业力什么意思| 柿子不能和什么一起吃| 嗓子疼流鼻涕吃什么药| 糖化血红蛋白偏高是什么意思| 尿道疼是什么原因| loho是什么牌子| 食言是什么意思| 秦始皇叫什么| 为什么体重一直下降| 高锰酸钾加什么会爆炸| psa升高代表什么| 脚汗多是什么原因| 肚脐眼痒是什么原因| 十一是什么意思| 为什么会得飞蚊症| 飞花令是什么| 皮肤过敏用什么药| 肝硬化挂什么科| 摩羯座女和什么星座最配| 拔牙可以吃什么| 平均血红蛋白量偏高是什么意思| 一马平川是什么生肖| 7月26日什么星座| 腿抽筋是什么原因造成的| 龙生九子是什么生肖| 面部肌肉跳动是什么原因| 亚硝酸钠是什么| 忉利天是什么意思| 枯草热是什么病| 温度计里面红色液体是什么| 指甲看什么科| 舌头溃疡用什么药| 苹果吃了有什么好处| 类风湿什么症状| 一个胸大一个胸小是什么原因| 后循环缺血吃什么药| 柠檬水有什么好处| 什么情况属于诈骗| 为什么经常放屁| 性格开朗是什么意思| 梦见撞车是什么预兆| 牛肉丸子配什么菜好吃| 兴旺的反义词是什么| 食铁兽是什么动物| 出生证号是什么| 这个季节适合种什么蔬菜| 口僻是什么病| 甲功是查什么的| 小基数是什么意思| 0.5什么意思| 树欲静而风不止什么意思| 导火索是什么意思| 曹操为什么要杀华佗| 淘宝交易关闭是什么意思| 湿热内蕴证有什么症状| 尿酸高不能吃什么水果| 什么药治拉肚子| 10000是什么电话| 脂溢性皮炎用什么洗发水| 400年前是什么朝代| 三点水加一个心读什么| 第一次见女方家长带什么礼物好| 你的美丽让你带走是什么歌| 舌头苦是什么原因| 什么是混合物| 菜板什么材质的好| 古代男子成年叫什么| 2段和3段奶粉有什么区别| 人间烟火是什么意思| 男人有泪痣代表什么| 胸腔积液是什么原因引起的| 暧昧是什么意思| 胳膊疼挂什么科| 十一月二十五是什么星座| 梦见海龟是什么意思| 前列腺特异性抗原高是什么原因| 李世民属什么生肖| 什么是宫腔镜检查| 蚕丝衣服用什么洗最好| 三白眼是什么意思| 被利用的信任是什么歌| 南瓜有什么营养| 吃什么减肥| 高压偏低是什么原因造成的| 肺寒咳嗽吃什么药| 12月16是什么星座| 欧尼是什么意思| 智齿为什么叫智齿| 什么病不能熬夜| 身在其位必谋其职是什么意思| 什么东西不能带上飞机| 难于上青天是什么意思| 手柄是什么意思| 卡粉是什么意思| 65年出生属什么| 女人经期吃什么食物好| 胆结石吃什么水果好| 犯贱是什么意思| 肛门坠胀吃什么消炎药| 千斤拔泡酒有什么功效| 后脑勺麻木是什么征兆| 十万个为什么儿童版| 水猴子是什么动物| 女人更年期有什么症状| 喉咙看什么科| 右手发麻是什么原因| 单方精油和复方精油有什么区别| 音高是什么意思| 直肠炎吃什么药好的快| 吃相难看是什么意思| 李宇春父亲是干什么的| 阴阳两虚吃什么食物| 干什么呢| 农历六月十七是什么日子| 什么玉便宜又养人| 猪肝跟什么相克| 什么好| 尿细菌高是什么原因| 老年人脸肿是什么原因引起的| 为什么微信附近的人看不到我| 缴费基数是什么意思| 桑叶有什么作用| 牙龈上火肿痛吃什么药| 御木本是什么档次| 液蜡是什么| 贫血做什么检查能查出来| 触霉头是什么意思| 什么火锅最好吃| 银杏果长什么样| 挂了是什么意思| 中国是什么时区| 什么炒肉| 琀是什么意思| 大枣和红枣有什么区别| 张起灵和吴邪什么关系| 来大姨妈适合吃什么水果| 降血脂吃什么药效果好| 人为什么要火化| 7月14号是什么节日| 精致是什么意思| 皴是什么意思| 什么病不能吃虾| 梦见摘瓜是什么意思啊| hpv什么病| 嘴唇白是什么原因| 痛经是什么| dhea是什么药| 梦代表什么生肖| 武警是干什么的| 股癣是什么样子的图片| 炼乳是什么做的| 女人脾虚吃什么药最好| 排卵期和排卵日有什么区别| 男生做爱什么感觉| 80是什么意思| 全麻后为什么不能睡觉| 什么样的红点是白血病| 人在囧途是什么意思| 乌鸡卷是什么肉做的| 6月份出生是什么星座| 什么不什么什么| 慢悠悠的近义词是什么| 陈皮泡水喝有什么功效| 看脑血管挂什么科| 血管瘤是什么| 子宫腺肌症是什么原因引起的| min是什么| gold是什么牌子| 6月23日什么星座| 属猴女和什么属相最配| abc是什么药| 尿道口有烧灼感为什么| 打嗝是什么引起的| 百度Jump to content

布罗格登:NBA所有的掩护都是非法掩护 

From Wikipedia, the free encyclopedia
百度 吕祖谦治学的学风、方法和宗旨等与众不同,这是他最终能成为南宋理学大儒的重要基础。

In computer science, a ball tree, balltree[1] or metric tree, is a space partitioning data structure for organizing points in a multi-dimensional space. A ball tree partitions data points into a nested set of balls. The resulting data structure has characteristics that make it useful for a number of applications, most notably nearest neighbor search.

Informal description

[edit]

A ball tree is a binary tree in which every node defines a D-dimensional ball containing a subset of the points to be searched. Each internal node of the tree partitions the data points into two disjoint sets which are associated with different balls. While the balls themselves may intersect, each point is assigned to one or the other ball in the partition according to its distance from the ball's center. Each leaf node in the tree defines a ball and enumerates all data points inside that ball.

Each node in the tree defines the smallest ball that contains all data points in its subtree. This gives rise to the useful property that, for a given test point t outside the ball, the distance to any point in a ball B in the tree is greater than or equal to the distance from t to the surface of the ball. Formally:[2]

Where is the minimum possible distance from any point in the ball B to some point t.

Ball-trees are related to the M-tree, but only support binary splits, whereas in the M-tree each level splits to fold, thus leading to a shallower tree structure, therefore need fewer distance computations, which usually yields faster queries. Furthermore, M-trees can better be stored on disk, which is organized in pages. The M-tree also keeps the distances from the parent node precomputed to speed up queries.

Vantage-point trees are also similar, but they binary split into one ball, and the remaining data, instead of using two balls.

Construction

[edit]

A number of ball tree construction algorithms are available.[1] The goal of such an algorithm is to produce a tree that will efficiently support queries of the desired type (e.g. nearest-neighbor) in the average case. The specific criteria of an ideal tree will depend on the type of question being answered and the distribution of the underlying data. However, a generally applicable measure of an efficient tree is one that minimizes the total volume of its internal nodes. Given the varied distributions of real-world data sets, this is a difficult task, but there are several heuristics that partition the data well in practice. In general, there is a tradeoff between the cost of constructing a tree and the efficiency achieved by this metric.[2]

This section briefly describes the simplest of these algorithms. A more in-depth discussion of five algorithms was given by Stephen Omohundro.[1]

k-d construction algorithm

[edit]

The simplest such procedure is termed the "k-d Construction Algorithm", by analogy with the process used to construct k-d trees. This is an offline algorithm, that is, an algorithm that operates on the entire data set at once. The tree is built top-down by recursively splitting the data points into two sets. Splits are chosen along the single dimension with the greatest spread of points, with the sets partitioned by the median value of all points along that dimension. Finding the split for each internal node requires linear time in the number of samples contained in that node, yielding an algorithm with time complexity , where n is the number of data points.

Pseudocode

[edit]
function construct_balltree is
    input: D, an array of data points.
    output: B, the root of a constructed ball tree.

    if a single point remains then
        create a leaf B containing the single point in D
        return B
    else
        let c be the dimension of greatest spread
        let p be the central point selected considering c
        let L, R be the sets of points lying to the left and right of the median along dimension c
        create B with two children: 
            B.pivot := p
            B.child1 := construct_balltree(L),
            B.child2 := construct_balltree(R),
            let B.radius be maximum distance from p among children
        return B
    end if
end function
[edit]

An important application of ball trees is expediting nearest neighbor search queries, in which the objective is to find the k points in the tree that are closest to a given test point by some distance metric (e.g. Euclidean distance). A simple search algorithm, sometimes called KNS1, exploits the distance property of the ball tree. In particular, if the algorithm is searching the data structure with a test point t, and has already seen some point p that is closest to t among the points encountered so far, then any subtree whose ball is further from t than p can be ignored for the rest of the search.

Description

[edit]

The ball tree nearest-neighbor algorithm examines nodes in depth-first order, starting at the root. During the search, the algorithm maintains a max-first priority queue (often implemented with a heap), denoted Q here, of the k nearest points encountered so far. At each node B, it may perform one of three operations, before finally returning an updated version of the priority queue:

  1. If the distance from the test point t to the current node B is greater than the furthest point in Q, ignore B and return Q.
  2. If B is a leaf node, scan through every point enumerated in B and update the nearest-neighbor queue appropriately. Return the updated queue.
  3. If B is an internal node, call the algorithm recursively on B's two children, searching the child whose center is closer to t first. Return the queue after each of these calls has updated it in turn.

Performing the recursive search in the order described in point 3 above increases likelihood that the further child will be pruned entirely during the search.

Pseudocode

[edit]
function knn_search is
    input: 
        t, the target point for the query
        k, the number of nearest neighbors of t to search for
        Q, max-first priority queue containing at most k points
        B, a node, or ball, in the tree
    output: 
        Q, containing the k nearest neighbors from within B

    if distance(t, B.pivot) - B.radius ≥ distance(t, Q.first) then
        return Q unchanged
    else if B is a leaf node then
        for each point p in B do
            if distance(t, p) < distance(t, Q.first) then
                add p to Q
                if size(Q) > k then
                    remove the furthest neighbor from Q
                end if
            end if
        repeat
    else
        let child1 be the child node closest to t
        let child2 be the child node furthest from t
        knn_search(t, k, Q, child1)
        knn_search(t, k, Q, child2)
    end if
    return Q
end function[2]

Performance

[edit]

In comparison with several other data structures, ball trees have been shown to perform fairly well on the nearest-neighbor search problem, particularly as their number of dimensions grows.[3][4] However, the best nearest-neighbor data structure for a given application will depend on the dimensionality, number of data points, and underlying structure of the data.

References

[edit]
  1. ^ a b c Omohundro, Stephen M. (1989) "Five Balltree Construction Algorithms"
  2. ^ a b c Liu, T.; Moore, A. & Gray, A. (2006). "New Algorithms for Efficient High-Dimensional Nonparametric Classification" (PDF). Journal of Machine Learning Research. 7: 1135–1158. Archived from the original (PDF) on 2025-08-05. Retrieved 2025-08-05.
  3. ^ Kumar, N.; Zhang, L.; Nayar, S. (2008). "What is a Good Nearest Neighbors Algorithm for Finding Similar Patches in Images?". Computer Vision – ECCV 2008 (PDF). Lecture Notes in Computer Science. Vol. 5303. p. 364. CiteSeerX 10.1.1.360.7582. doi:10.1007/978-3-540-88688-4_27. ISBN 978-3-540-88685-3.
  4. ^ Kibriya, A. M.; Frank, E. (2007). "An Empirical Comparison of Exact Nearest Neighbour Algorithms". Knowledge Discovery in Databases: PKDD 2007 (PDF). Lecture Notes in Computer Science. Vol. 4702. p. 140. doi:10.1007/978-3-540-74976-9_16. ISBN 978-3-540-74975-2.
心无什么用 孕育是什么意思 叶酸片什么时候吃 五月二十九是什么日子 鹅蛋治什么妇科病
跳蚤怕什么 下焦湿热吃什么药 夜间胃痛是什么原因 卵巢早衰吃什么药最好 实蛋是什么
韭菜吃多了有什么坏处 什么蜘蛛有毒 艾滋病的症状是什么样 幽门螺旋杆菌弱阳性是什么意思 烫伤起水泡涂什么药膏
额头和下巴长痘痘是什么原因 心阳虚吃什么中成药 99年属兔的是什么命 出去旅游需要带什么 霉菌阴道炎用什么药
易建联为什么不打nbahcv9jop5ns5r.cn 2028年属什么xjhesheng.com 龙王庙是指什么生肖hcv9jop2ns1r.cn 姓贾的男孩取什么名字好hcv8jop9ns7r.cn 小叶增生吃什么药好helloaicloud.com
细什么细什么hcv8jop3ns1r.cn 多此一举是什么生肖hcv8jop9ns0r.cn 岫岩玉是什么玉hcv9jop2ns5r.cn 18kgp是什么意思hcv7jop7ns3r.cn 师兄是什么意思hcv8jop2ns3r.cn
肛瘘是什么症状hcv7jop7ns4r.cn 5.21什么星座hcv9jop8ns1r.cn 长期手淫有什么危害hcv9jop3ns4r.cn 急性肠炎吃什么食物好hcv8jop4ns2r.cn 手麻脚麻是什么病hcv7jop7ns3r.cn
资金流入股价下跌为什么jinxinzhichuang.com 9月什么星座hcv8jop0ns9r.cn 马弁是什么意思hcv9jop0ns8r.cn 尿道炎吃什么药比较好的快hcv8jop3ns8r.cn 两个水念什么hcv8jop2ns5r.cn
百度