k近鄰學習筆記一

2021-09-12 01:28:37 字數 1375 閱讀 7616

k近鄰(k-nearest neighbor,簡稱knn)學習是一種常用的監督學習方法。

物件通過其鄰居的多個投票進行分類,其中物件被分配給其k個最近鄰居中最常見的類(k是正整數,通常是小整數)。如果k = 1,則簡單地將物件分配給該單個最近鄰居的類。 ---------《維基百科》

在維基百科中,是引用下圖做的介紹:

當k值為3的時候,就是我們在圖中看到的黑色實線圓圈,在圓圈以內,有兩個

紅色的三角形和乙個藍色的正方形,此時,我們會將標有問號的綠色圓圈(**資料)推測是紅色三角形;

同理,當k=5的時候,便是黑色虛線圓圈中,我們可以看到,裡面有三個藍色正方形以及兩個紅色三角形,此時將**資料推斷為藍色正方形。

k指的是**資料周圍的「鄰居」數量,當k等於1時,**該類是最接近的訓練樣本的類的特殊情況被稱為最近鄰居演算法。

工作機制:

給定測試樣本,基於某種距離度量找出訓練集中與其最接近的k個訓練樣本,然後基於這k個「鄰居」的資訊來進行**。

分類依據:

通常,在分類中一般選擇「投票法」,就是我們通常說的「少數服從多數」,即選擇在這k個樣本出現最多的類別標記作為**結果。

而在回歸任務中,可選用以下方法進行分類:

一、「平均法」,即將這k個樣本的實值輸出標記的平均值作為**結果;

二、基於距離遠近進行加權平均或加權投票,距離越近的樣本權重越重;

三、自定義權重演算法。

特徵:

是「懶惰學習」(lazy learning)的代表,在訓練集僅僅將樣本儲存起來,訓練時間開銷為零,等收到樣本之後在進行處理。

影響knn精度的因素:

1. k值的選取

k的最佳選擇取決於資料; 通常,較大的k值會降低雜訊對分類的影響,但會使類之間的界限不那麼明顯。可以通過各種啟發式技術選擇好的k;

2. 距離演算法

連續變數的常用距離度量是歐幾里德距離。對於離散變數,例如用於文字分類,可以使用另乙個度量,例如重疊度量(或漢明距離)。在基因表達微陣列資料的背景下,例如,k- nn也已經與相關係數一起使用,例如pearson和spearman。[3]通常,如果通過專門演算法(如大邊距最近鄰或鄰域分量分析)學習距離度量,則可以顯著提高k -nn 的分類準確度。

3. 決策的規則(uniform,distance,自定義)

學習筆記(一)k 近鄰演算法(KNN)

終於找到 機器學習實戰 這本書了,在此記錄一些總結,便於回顧。knn的工作原理是 存在乙個樣本資料集合,也稱作訓練樣本集,並且樣本集中每個資料都存在標籤,即我們知道樣本集中每一資料與所屬分類的對應關係。輸入沒有標籤的新資料後,將新資料的每個特徵與樣本集中資料對應的特徵進行比較,然後演算法提取樣本集中...

學習筆記 K 近鄰演算法

一 k 近鄰演算法概述 適用於 數值型和標量型 1 收集資料 2 準備資料 向量點距離 3 按照距離遞增次序排序 4 選取與當前距離最小的k個點 5 確定選擇k個點所在類別的頻率 6 判斷當前點的的類別 二 k 近鄰演算法實現 python語言實現 共有資料1000行,含有三個資料特徵 每年獲得的飛...

學習筆記 k近鄰法

對新的輸入例項,在訓練資料集中找到與該例項最鄰近的 k 個例項,這 k 個例項的多數屬於某個類,就把該輸入例項分給這個類。k 近鄰法 k nearest neighbor,k nn 是一種基本分類與回歸方法,這裡只討論分類問題中的 k nn。三要素 輸入 訓練資料集 t 這裡的 y i 是例項的類別...