KDTree簡單理解

2021-08-09 15:59:36 字數 516 閱讀 4659

kdtree作為乙個樹的結構,通常用來做高維的分割。在分割成為樹的時候,保證下一層節點的比較位如果小於當前的比較位,則向左生長,否則向右生長。所謂的比較位就是當前層數%總的維度,例如三維座標,第一層就是x,第二層就是y,第三層就是z。直接看圖

圖中每一層的比較位用加粗表示了,看第一層,比較位是第一位,也就是3,(2,3,7)中2>3,所以像左生長,(4,3,4)中4>3所以向右生長。

到了第二層,這裡只看(2,3,7),他的比較位是y也就是3了,那麼(2,1,3)中1<3所以像左生長,(2,,4,5)中4>3所以想向右生長。

至於kdtree是怎麼訓練出來能夠做到盡量平衡的,就是通過傳統的決策樹的演算法,算出資訊熵決定的。如果撿到乙個就分乙個會很可能極度不平衡,搜尋的時候可能會搜尋非常深,但是即使用了決策樹的演算法,也不可能是完全平衡的,只是乙個最優解而已。

K近鄰與KdTree的簡單理解

k近鄰演算法是一種簡單有效的分類與回歸方法。其基本思想是 給定乙個訓練用的資料集,對於新的輸入例項,在訓練資料中找到與該例項最為相似或者接近的k個例項,通過某種表決規則,比如這k個例項的多數類別為某個類a,就把這個新輸入的例項類別歸為這個類a k近鄰演算法是很簡單與直觀的。只需要通過簡單的距離度量,...

KD tree學習筆記

如上圖 a 我們先對待識別的物體的影象進行sift特徵點的檢測和特徵點的描述,然後得到了sift特徵點集合。接下來生成物體目標描述要做的就是對特徵點集合進行資料組織,形成一種特殊的表示,其作用是為了加速特徵點匹配的過程。所謂的特徵點匹配本質上是乙個通過距離函式 例如歐式距離 在高維向量之間進行相似性...

學習筆記 kd tree

kd tree用來維護n維空間中的點的一種資料結構。支援插入 刪除 查詢k臨近 包括最遠點對和最近點對 kd tree本質是一顆二叉樹。每一層選擇乙個維度,找到當前維度的中點 讓樹盡量平衡 經過這個點,在當前維度切割,分成左右兩個子樹。通常維度的選擇是順次迴圈的,較易實現。更優的方法是找到方差最大的...