機器學習演算法(三):K近鄰(k-nearest neighbors)初探

lzz_zmm發表於2020-12-21

機器學習演算法(三):K近鄰(k-nearest neighbors)初探

機器學習訓練營:
https://tianchi.aliyun.com/s/20d6735792ef867814c90698221d1499

1 KNN介紹

   kNN(k-nearest neighbors),中文翻譯K近鄰。我們常常聽到一個故事:如果要了解一個人的經濟水平,只需要知道他最好的5個朋友的經濟能力, 對他的這五個人的經濟水平求平均就是這個人的經濟水平。這句話裡面就包含著kNN的演算法思想。

  1. KNN建立過程

1 給定測試樣本,計算它與訓練集中的每一個樣本的距離。
2 找出距離近期的K個訓練樣本。作為測試樣本的近鄰。
3 依據這K個近鄰歸屬的類別來確定樣本的類別。

  1. 類別的判定

①投票決定,少數服從多數。取類別最多的為測試樣本類別。

②加權投票法,依據計算得出距離的遠近,對近鄰的投票進行加權,距離越近則權重越大,設定權重為距離平方的倒數。

2 KNN應用

KNN即能做分類又能做迴歸, 還能用來做資料預處理的缺失值填充。

3 KNN原理

   在KNN中,通過計算物件間距離來作為各個物件之間的非相似性指標,避免了物件之間的匹配問題,在這裡距離一般使用歐氏距離或曼哈頓距離:
在這裡插入圖片描述

距離量度

樣本空間內的兩個點之間的距離量度表示兩個樣本點之間的相似程度:距離越短,表示相似程度越高;反之,相似程度越低。

常用的距離量度方式包括:

閔可夫斯基距離

歐氏距離

曼哈頓距離

切比雪夫距離

餘弦距離

1)閔可夫斯基距離

閔可夫斯基距離本身不是一種距離,而是一類距離的定義。對於n維空間中的兩個點x(x1,x2,…,xn)和y(y1,y2,…,yn),x和y之間的閔可夫斯基距離可以表示為:
在這裡插入圖片描述
其中,p是一個可變引數:

當p=1時,被稱為曼哈頓距離;

當p=2時,被稱為歐氏距離;

當p=\infty時,被稱為切比雪夫距離。

2)歐氏距離

在這裡插入圖片描述
歐氏距離(L2範數)是最易於理解的一種距離計算方法,源自歐氏空間中兩點間的距離公式,也是最常用的距離量度。

3)曼哈頓距離

根據閔可夫斯基距離定義,曼哈頓距離的計算公式可以寫為:
在這裡插入圖片描述

學習連結:
https://blog.csdn.net/hajk2017/article/details/82862788

相關文章