1. 程式人生 > >KNN K最近鄰演算法

KNN K最近鄰演算法

  K Nearest Neighbor,KNN,K最近鄰演算法。

  演算法原理:

    (1)計算未知類別資料點與已知類別資料點之間的距離,並按降序排序。

    (2)選取與未知類別資料點距離最小的k個點。

    (3)以k個點中出現頻率最高的類別作為未知類別資料點的類別。

    注意:k一般選擇奇數,因為最後要進行少數服從多數的投票。

  距離計算:

    n維空間上兩點a(x1,x2,x3....

..xn)b(y1,y2,y3......yn)的歐式距離公式:

d=(x1y1)2+(x2y2)2+...+(xnyn)2
    其他距離衡量方法:餘弦值cos、相關度correlation (如皮爾遜相關係數)、曼哈頓距離Manhattan distance。

  KNN演算法的優缺點:

    優點:

      簡單,容易理解和實現,可通過增大K增強對噪音的健壯性

    缺點:

      1、演算法的複雜度高,即演算法所需要的記憶體多、時間高。

      2、當樣本分佈不平衡時,未知類別點容易被歸類為主導樣本。

    改進:

      考慮權重,如1/d (d:距離)

  應用舉例:

    (1)根據打鬥鏡頭數和接吻鏡頭數判斷電影是愛情片、動作片。

    (2)線上約會網站尋找最合適的約會物件

    (3)手寫數字識別