DL、ML筆記(五):kNN分類演算法(k-Nearest Neighbor)

JianJie
Mar 28, 2021

--

kNN全名為”k-Nearest Neightbor”,其翻譯為”k個最近的鄰居”。

在數據中,相似的數據會聚集在類似的區域中,形成一團團集中的類別,即為”物以類聚”的狀況,而kNN則是利用此種特性,對未知目標進行分類。

以較為簡易的方式說明:

假設未知分類的目標為X,可以從其目標最靠近的K個目標,比較K個近鄰中多數為哪個類別,因此將該目標X歸類為該類。

其標準步驟為:

1. 決定k,選擇k個近鄰點

2. 計算目標與所有資料間的距離

3. 找出k個距離最為接近的資料點,在這些資料點中,類別標籤最多的極為該目標之類別

在第一步驟中,K為影響分類中最為重要的參數,其影響了類別分類界定的細緻度,其差別如圖:

當K值選擇越小時,分類界定越為敏感,反之,分類邊界較為平滑,較不受outlier影響。

而計算距離的方式也可以有多樣變化,以最常見的為歐式距離(Euclidean Distance),也可以改為曼哈頓距離(Manhattan distance)或是Cosine similarity等其他距離計算公式,分類的特性則與距離計算相關。

其優點為:

算法簡單、且有效分類

但缺點為:

1. 每次分類皆要對所有數據計算一次距離,計算時間較長

2. 容易受到Outlier影響,只考慮k近鄰點,無法判斷其周圍是否為雜訊,雜訊與準確資料比重相同,因此容易受到影響。

--

--

JianJie
JianJie

Written by JianJie

Image Processing / Computer Vision / Deep Learning

No responses yet