(轉)K-近鄰算法(KNN)

K-近鄰算法(KNN)概述  html

KNN是經過測量不一樣特徵值之間的距離進行分類。它的思路是:若是一個樣本在特徵空間中的k個最類似(即特徵空間中最鄰近)的樣本中的大多數屬於某一個類別,則該樣本也屬於這個類別,其中K一般是不大於20的整數。KNN算法中,所選擇的鄰居都是已經正確分類的對象。該方法在定類決策上只依據最鄰近的一個或者幾個樣本的類別來決定待分樣本所屬的類別。算法

 

     下面經過一個簡單的例子說明一下:以下圖,綠色圓要被決定賦予哪一個類,是紅色三角形仍是藍色四方形?若是K=3,因爲紅色三角形所佔比例爲2/3,綠色圓將被賦予紅色三角形那個類,若是K=5,因爲藍色四方形比例爲3/5,所以綠色圓被賦予藍色四方形類。測試

 

由此也說明了KNN算法的結果很大程度取決於K的選擇。spa

     在KNN中,經過計算對象間距離來做爲各個對象之間的非類似性指標,避免了對象之間的匹配問題,在這裏距離通常使用歐氏距離或曼哈頓距離:htm

                      

同時,KNN經過依據k個對象中佔優的類別進行決策,而不是單一的對象類別決策。這兩點就是KNN算法的優點。對象

   接下來對KNN算法的思想總結一下:就是在訓練集中數據和標籤已知的狀況下,輸入測試數據,將測試數據的特徵與訓練集中對應的特徵進行相互比較,找到訓練集中與之最爲類似的前K個數據,則該測試數據對應的類別就是K個數據中出現次數最多的那個分類,其算法的描述爲:blog

1)計算測試數據與各個訓練數據之間的距離;排序

2)按照距離的遞增關係進行排序;it

3)選取距離最小的K個點;方法

4)肯定前K個點所在類別的出現頻率;

5)返回前K個點中出現頻率最高的類別做爲測試數據的預測分類。

 

 轉自於:https://www.cnblogs.com/ybjourney/p/4702562.html

相關文章
相關標籤/搜索