《Machine Learning:Clustering & Retrieval》課程第2章之手算KD-tree
02-03
本文來源於Machine Learning: Clustering & Retrieval | Coursera課程中的kdtree一節,做了一些重新組織和翻譯。
推薦閱讀:
數據集:

kd-tree構建過程:
第一步:進行第一次split
從上圖可以看出,X軸的方差更大一些,所以先從X軸進行split。split value取point 1和point 2的平均值,即(0.89+0.04) / 2 = 0.465




我們先來確定我們用的啟發式方法:
a.選擇哪個軸進行split?方差大的,或者還沒有使用過的軸
b.如何確定split value:(smallest value + biggest value) / 2
c.什麼時候stop?在本例子中選擇node只含有<=2個point的時候
因為第一次是用的x軸split,為了充分利用信息,第二次使用y軸split






比如我們的query point是紅色點:



但是node7的tight bounding box並不在圓里,所以prune掉。
繼續向上找:

繼續tranverse:



這個時候繼續搜索,但是所有結點都搜索完了,所以data point3是最近鄰。
推薦閱讀:
※情感分類(sentiment classification)推薦使用什麼演算法和軟體包?
※10家將機器學習玩出新花樣的公司
※PaperWeekly 第二期
TAG:机器学习 |









