學習筆記 k近鄰法

2022-07-12 11:24:11 字數 1102 閱讀 4349

對新的輸入例項,在訓練資料集中找到與該例項最鄰近的\(k\)個例項,這\(k\)個例項的多數屬於某個類,就把該輸入例項分給這個類。

\(k\) 近鄰法(\(k\)-nearest neighbor, \(k\)-nn)是一種基本分類與回歸方法,這裡只討論分類問題中的\(k\)-nn。

三要素:

輸入:訓練資料集\(t = \\),這裡的\(y_i\)是例項的類別;例項特徵向量\(x\);

輸出:例項\(x\)所屬的類\(y\)。

根據給定的距離度量,在訓練集中找出與\(x\)最鄰近的\(k\)個點,涵蓋這\(k\)個點的\(x\)的鄰域記作\(n_k(x)\);

在\(n_k(x)\)中根據分類決策規則(如多數表決)決定\(x\)的類別\(y\):

$$ y = \arg \max_ \sum_ i \left(y_i = c_j \right), i = 1,2, \cdot \cdot \cdot, k $$
其中,\(i\)為指示函式,等於的時候為1,否則為0。

線性掃瞄(linear scan)算出所有的距離,簡單但是耗時。可以使用\(kd\)樹這種資料結構來提高效率,它可以表示對\(k\)維空間的乙個劃分,\(kd\)樹的每個節點對應乙個\(k\)維超矩形區域。

開始:構造根節點

選擇\(x^\)為座標軸,以所有例項\(x^\)座標的中位數為切分點,這個超平面將空間切分為兩個子區域,落在這個超平面上的例項點儲存在根節點。

重複:乙個乙個地細分,切分成子區域

依次迴圈往後選擇座標軸。

直到子區域沒有例項存在時停止

找到包含\(x\)的葉結點

從根節點出發,向左或向右移動,直到找到葉結點。

以此葉結點為「當前最近點」

遞迴地向上回退,在每個結點進行以下操作:

回退到根結點時結束,最後的「當前最近點」即為\(x\)的最近鄰。

(注:本文為讀書筆記與總結,側重演算法原理,**為[《統計學習方法》](一書第三章)

出處:[

機器學習 k近鄰法 python

1 k kk近鄰法是基本且簡單的分類與回歸方法。k kk近鄰法的基本做法是 對給定的訓練例項點和輸入例項點,首先確定輸入例項點的k kk個最近鄰訓練例項點,然後利用這k kk個訓練例項點的類的多數來 輸入例項點的類。2 k kk近鄰模型對應於基於訓練資料集對特徵空間的乙個劃分。k kk近鄰法中,當訓...

統計學習方法筆記 K近鄰法

看完了knn演算法,感覺演算法挺簡單的,選擇k的大小,距離計算公式,分類決策三個部分就行了,並且三個部分用的東西都挺常見,沒什麼難度。後面的提到了乙個改進演算法,搜尋空間kd演算法,這樣可以幫助我們很快的找到k個最近鄰,運用中位數縮小搜尋空間,省去了對大部分資料點的搜尋。思想不難 k近鄰法是一種基本...

k近鄰學習筆記一

k近鄰 k nearest neighbor,簡稱knn 學習是一種常用的監督學習方法。物件通過其鄰居的多個投票進行分類,其中物件被分配給其k個最近鄰居中最常見的類 k是正整數,通常是小整數 如果k 1,則簡單地將物件分配給該單個最近鄰居的類。維基百科 在維基百科中,是引用下圖做的介紹 當k值為3的...