KNN(K Nearest Neighbor)算法
一、算法思想:
假設一個樣本空間里的樣本分成幾個類型[1],然后給定一個待分類的數據,通過計算距離該數據最近的K個樣本來判斷這個待分類數據屬於哪個分類。簡單的說,就是由那些里自己最近的K個樣本點投票決定待分類數據歸為哪一類。
二、實例說明:
下圖中有兩種類型的樣本數據,一類是藍色的正方形,另一類是紅色的三角形,中間那個綠色的圓形是待分類數據;
圖 1 KNN算法示例
如果K=3,那么離綠色點最近的有2個紅色的三角形和1個藍色的正方形,這三個點進行投票,於是綠色的待分類點就屬於紅色的三角形。
如果K=5,那么離綠色點最近的有2個紅色的三角形和3個藍色的正方形,這五個點進行投票,於是綠色的待分類點就屬於藍色的正方形。
三、算法描述
KNN算法的步驟可以描述為[2]:
1、計算出樣本數據和待分類數據的距離;
2、為待分類數據選擇K個與其距離最小的樣本;
3、統計出K個樣本中大多數樣本所屬的分類;
4、這個分類就是待分類數據所屬的分類。
四、注意事項:
K應該設置為一個奇數,這樣可以保證投票的時候不會有平票。
參考文獻:
[1] 《K Nearest Neighbor 算法》 http://coolshell.cn/articles/8052.html
[2] 《數據挖掘之分類 (KNN算法的描述及使用)》 http://ahuaxuan.iteye.com/blog/164435