k近鄰算法|K-Nearest Neighbors Algorithm(KNN)
1. 直觀上理解

如圖所示,已經(jīng)有兩個(gè)數(shù)據(jù)集,用★和▲分別標(biāo)出,然后輸入一個(gè)新的數(shù)據(jù)?,我們來判斷?是屬于★還是▲。那么如何分類呢?KNN的思想是這樣的:(這里以歐氏距離為例)以新數(shù)據(jù)為圓心,以圓里的數(shù)據(jù)個(gè)數(shù)為K(這個(gè)K就是KNN的K值)半徑,畫圓。最后看這個(gè)圓里的K個(gè)數(shù)據(jù)是★多還是▲多,哪個(gè)多我們判定新數(shù)據(jù)就屬于哪個(gè)類型(多數(shù)表決法)。
請(qǐng)注意以上標(biāo)紅加粗的字嗷。
(1)已經(jīng)有了帶標(biāo)簽的數(shù)據(jù)集,這個(gè)數(shù)據(jù)集你得有,不管什么樣的方法找到的。是要對(duì)新的數(shù)據(jù)集進(jìn)行分類,看他歸屬于已有的哪個(gè)數(shù)據(jù)集。
(2)KNN三要素:K值的選擇,距離度量,分類決策規(guī)則。圖上例舉了K為1和7的情形,采用歐氏距離,決策規(guī)則為多數(shù)表決。
(3)距離度量:



(4)K值的選擇

2. 上算法

好的,算法知道了,給定數(shù)據(jù)集,新來的點(diǎn)和所有的數(shù)據(jù)集已經(jīng)標(biāo)簽的樣本進(jìn)行距離計(jì)算,然后比較,求出最近的k個(gè)樣本,如果樣本維度較高,數(shù)據(jù)比較龐大,那么計(jì)算機(jī)計(jì)算所有點(diǎn),耗時(shí)耗力,占用太多資源,怎么辦呢?一個(gè)辦法,買高性能計(jì)算平臺(tái),第二個(gè)辦法,優(yōu)化搜索算法。這個(gè)時(shí)候就用到kd樹。
3. kd樹
3.1 什么是kd樹 | 3.2構(gòu)造kd樹 | 3.3 kd樹搜索。
【合集】十分鐘 機(jī)器學(xué)習(xí) 系列視頻 《統(tǒng)計(jì)學(xué)習(xí)方法》_嗶哩嗶哩_bilibili
感謝上述視頻。
感謝李航老師的《統(tǒng)計(jì)學(xué)習(xí)方法(第二版)》。上述除視頻外的資料均為此書提供。
歡迎批評(píng)指正。