KNN-KD樹

k最近鄰(kNN)算法是一種分類與回歸的方法,假設我們給定一個searching point已脓,打算在訓練數據集中找到一個與該searching point最近的k個數據點梳星,利用多數表決確定這k個點所屬的類邀泉,將該searching point歸入到這個類里面。


kd樹是k近鄰的一種實現(xiàn)方法:為提高搜索效率

構造kd樹

kd樹是數據的一種存儲結構胚迫,是一顆平衡二叉樹喷户,同時也是對數據所在空間的劃分。就是把整個數據空間劃分為幾個部分访锻,然后在特定的空間內進行操作褪尝。

kd樹構造流程

算法直到需要被劃分的子樹為空是停止。

搜索最近鄰:

輸入:已經構造的kd樹期犬,測試樣本x

輸出:x的最近鄰

a)如果kd樹為空河哑,返回null

b)進行二叉查找,在kd樹中找到包含x的葉節(jié)點龟虎,并生成搜索路徑:從根節(jié)點開始璃谨,遞歸的向下訪問kd樹。首先將節(jié)點壓入表示搜索路徑的棧中鲤妥,如果目標點x當前維的坐標小于切分點的坐標佳吞,進入左子節(jié)點,否則進入右子節(jié)點棉安。直到子節(jié)點為空底扳。

c)回溯查找:

根據得到的搜索路徑棧,棧頂的元素為“當前最近點”贡耽,將該元素出棧衷模,并計算該點與x的距離d;

while 棧不空:

????????? 棧頂元素出棧(父節(jié)點)蒲赂;

?????????以x為圓心阱冶,d為半徑畫圓,

???????? if 這個圓與該元素(父節(jié)點)對應的分割超平面相交:

??????????????????計算該元素(父節(jié)點)和x的距離滥嘴,

???????????????????????????if小于d木蹬,則將該元素(父節(jié)點)更新為“當前最近點”,d也需要更新氏涩;

??????????????????同時對元素(父節(jié)點)的另一半子空間的子樹進行步驟b)届囚,搜索的點加入搜索路徑,即壓棧操作是尖;

搜索k近鄰:

方法:最大堆優(yōu)先隊列尋找k近鄰

1)建立一個大小為k的最大堆

2)在尋找最近鄰的算法中意系,每計算一次距離,將對應的樣本和距離加入最大堆中饺汹,直到最大堆建立完成

3)while 尋找最近鄰算法 是否 結束:

???????????? 繼續(xù)尋找最近鄰算法蛔添,并計算距離

???????????? 如果小于堆頂元素:

???????????? ???????????? 則替換,并維護最大堆

堆中的樣本即為x的k個近鄰。建立堆的時間是O(k)迎瞧,更新堆的時間為logk夸溶,總費時為費時O(k+(n-k)*logk)=O(n*logk)。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末凶硅,一起剝皮案震驚了整個濱河市缝裁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌足绅,老刑警劉巖捷绑,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異氢妈,居然都是意外死亡粹污,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門首量,熙熙樓的掌柜王于貴愁眉苦臉地迎上來壮吩,“玉大人,你說我怎么就攤上這事加缘⊙夹穑” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵拣宏,是天一觀的道長递雀。 經常有香客問我,道長蚀浆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任搜吧,我火速辦了婚禮市俊,結果婚禮上,老公的妹妹穿的比我還像新娘滤奈。我一直安慰自己摆昧,他們只是感情好,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布绅你。 她就那樣靜靜地躺著昭躺,像睡著了一般偶垮。 火紅的嫁衣襯著肌膚如雪脚猾。 梳的紋絲不亂的頭發(fā)上龙助,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機與錄音,去河邊找鬼漓糙。 笑死蝗蛙,一個胖子當著我的面吹牛,可吹牛的內容都是我干的壮韭。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起社搅,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后拆祈,有當地人在樹林里發(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年弄诲,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片塔插。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡洛搀,死狀恐怖,靈堂內的尸體忽然破棺而出佑淀,到底是詐尸還是另有隱情,我是刑警寧澤彰檬,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布伸刃,位于F島的核電站,受9級特大地震影響逢倍,放射性物質發(fā)生泄漏捧颅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一较雕、第九天 我趴在偏房一處隱蔽的房頂上張望碉哑。 院中可真熱鬧挚币,春花似錦、人聲如沸扣典。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽贮尖。三九已至笛粘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間湿硝,已是汗流浹背薪前。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留关斜,地道東北人示括。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像痢畜,于是被迫代替她去往敵國和親垛膝。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內容

  • 原文章為scikit-learn中"用戶指南"-->"監(jiān)督學習的第六節(jié):Nearest Neighbors"###...
    HabileBadger閱讀 7,112評論 0 7
  • B樹的定義 一棵m階的B樹滿足下列條件: 樹中每個結點至多有m個孩子裁着。 除根結點和葉子結點外繁涂,其它每個結點至少有m...
    文檔隨手記閱讀 13,183評論 0 25
  • 一些概念 數據結構就是研究數據的邏輯結構和物理結構以及它們之間相互關系,并對這種結構定義相應的運算二驰,而且確保經過這...
    Winterfell_Z閱讀 5,660評論 0 13
  • 一.樸素貝葉斯 1.分類理論 樸素貝葉斯是一種基于貝葉斯定理和特征條件獨立性假設的多分類的機器學習方法扔罪,所...
    wlj1107閱讀 3,072評論 0 5
  • 目錄 0.樹0.1 一般樹的定義0.2 二叉樹的定義 1.查找樹ADT 2.查找樹的實現(xiàn)2.1 二叉查找樹2.2 ...
    王偵閱讀 7,124評論 0 3