KNN K最近鄰演算法
阿新 • • 發佈:2019-01-05
K Nearest Neighbor,KNN,K最近鄰演算法。
演算法原理:
(1)計算未知類別資料點與已知類別資料點之間的距離,並按降序排序。
(2)選取與未知類別資料點距離最小的k個點。
(3)以k個點中出現頻率最高的類別作為未知類別資料點的類別。
注意:k一般選擇奇數,因為最後要進行少數服從多數的投票。
距離計算:
n維空間上兩點
a(x1,x2,x3.... ,..xn)b(y1,y2,y3......yn) 的歐式距離公式:
d=(x1−y1)2+(x2−y2)2+...+(xn−yn)2−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−√
其他距離衡量方法:餘弦值cos、相關度correlation (如皮爾遜相關係數)、曼哈頓距離Manhattan distance。KNN演算法的優缺點:
優點:
簡單,容易理解和實現,可通過增大K增強對噪音的健壯性
缺點:
1、演算法的複雜度高,即演算法所需要的記憶體多、時間高。
2、當樣本分佈不平衡時,未知類別點容易被歸類為主導樣本。
改進:
考慮權重,如1/d (d:距離)
應用舉例:
(1)根據打鬥鏡頭數和接吻鏡頭數判斷電影是愛情片、動作片。
(2)線上約會網站尋找最合適的約會物件
(3)手寫數字識別