複製鏈接
請複製以下鏈接發送給好友

鄰近算法

鎖定
鄰近算法,或者説K最鄰近(KNN,K-NearestNeighbor)分類算法是數據挖掘分類技術中最簡單的方法之一。所謂K最近鄰,就是K個最近的鄰居的意思,説的是每個樣本都可以用它最接近的K個鄰近值來代表。近鄰算法就是將數據集合中每一個記錄進行分類的方法 [1] 
中文名
k最鄰近分類算法
外文名
k-NearestNeighbor
簡    稱
kNN算法
含    義
每個樣本都可以用它最接近的k個鄰近值來代表
範    疇
數據挖掘分類技術
用    途
用於分類,對未知事物的識別

鄰近算法簡介

KNN(K- Nearest Neighbor)法即K最鄰近法,最初由 Cover和Hart於1968年提出,是一個理論上比較成熟的方法,也是最簡單的機器學習算法之一。該方法的思路非常簡單直觀:如果一個樣本在特徵空間中的K個最相似(即特徵空間中最鄰近)的樣本中的大多數屬於某一個類別,則該樣本也屬於這個類別。該方法在定類決策上只依據最鄰近的一個或者幾個樣本的類別來決定待分樣本所屬的類別 [2] 
該方法的不足之處是計算量較大,因為對每一個待分類的文本都要計算它到全體已知樣本的距離,才能求得它的K個最鄰近點。目前常用的解決方法是事先對已知樣本點進行剪輯,事先去除對分類作用不大的樣本。另外還有一種 Reverse KNN法,它能降低KNN算法的計算複雜度,提高分類的效率 [2] 
KNN算法比較適用於樣本容量比較大的類域的自動分類,而那些樣本容量較小的類域採用這種算法比較容易產生誤分 [2] 

鄰近算法核心思想

KNN算法的核心思想是,如果一個樣本在特徵空間中的K個最相鄰的樣本中的大多數屬於某一個類別,則該樣本也屬於這個類別,並具有這個類別上樣本的特性。該方法在確定分類決策上只依據最鄰近的一個或者幾個樣本的類別來決定待分樣本所屬的類別。KNN方法在類別決策時,只與極少量的相鄰樣本有關。由於KNN方法主要靠周圍有限的鄰近的樣本,而不是靠判別類域的方法來確定所屬類別的,因此對於類域的交叉或重疊較多的待分樣本集來説,KNN方法較其他方法更為適合。

鄰近算法算法流程

總體來説,KNN分類算法包括以下4個步驟: [3] 
①準備數據,對數據進行預處理 [3] 
②計算測試樣本點(也就是待分類點)到其他每個樣本點的距離 [3] 
③對每個距離進行排序,然後選擇出距離最小的K個點 [3] 
④對K個點所屬的類別進行比較,根據少數服從多數的原則,將測試樣本點歸入在K個點中佔比最高的那一類 [3] 

鄰近算法優點

KNN方法思路簡單,易於理解,易於實現,無需估計參數 [4] 

鄰近算法缺點

該算法在分類時有個主要的不足是,當樣本不平衡時,如一個類的樣本容量很大,而其他類樣本容量很小時,有可能導致當輸入一個新樣本時,該樣本的K個鄰居中大容量類的樣本佔多數 [5] 
該方法的另一個不足之處是計算量較大,因為對每一個待分類的文本都要計算它到全體已知樣本的距離,才能求得它的K個最近鄰點 [5] 

鄰近算法改進策略

目前對KNN算法改進的方向主要可以分為4類: [6] 
一是尋求更接近於實際的距離函數以取代標準的歐氏距離,典型的工作包括 WAKNN、VDM [6] 
二是搜索更加合理的K值以取代指定大小的K值典型的工作包括SNNB、 DKNAW [6] 
三是運用更加精確的概率估測方法去取代簡單的投票機制,典型的工作包括 KNNDW、LWNB、 ICLNB [6] 
四是建立高效的索引,以提高KNN算法的運行效率,代表性的研究工作包括 KDTree、 NBTree。還有部分研究工作綜合了以上的多種改進方法 [6] 
參考資料
  • 1.    田翠華著,基於GT4的物聯網交通信息服務仿真研究,廈門大學出版社,2017.01,第225頁
  • 2.    唐胡鑫,網站運營與數據分析 雙色版,航空工業出版社,2016.12,第81頁-第82頁
  • 3.    黃勤龍,楊義先著,雲計算數據安全,北京郵電大學出版社,2018.03,第95頁
  • 4.    曾向陽著,智能水中目標識別,國防工業出版社,2016.03,第107頁
  • 5.    程光,周愛平,吳樺著,互聯網大數據挖掘與分類,東南大學出版社,2015.12,第18頁
  • 6.    朱明編著,數據挖掘導論,中國科學技術大學出版社,2012.01,第79頁