K近鄰分類

2021-08-20 04:16:06 字數 2390 閱讀 8124

k-近鄰(待會介紹)的一種極端情況。「近朱者赤,近墨者黑」。

def

distance

(p0, p1):

# computes squared euclidean distance

return np.sqrt(np.sum((p0-p1)**2))

defnn_classify

(training_set, training_labels, new_example):

dists = np.array([distance(t, new_example) for t in training_set])

nearest = dists.argmin()

return training_labels[nearest]

將上述的最近鄰演算法泛化為乙個k近鄰分類器,不僅考慮最近鄰的點,還要考慮前k個最近鄰點。k近鄰假設給定乙個訓練資料集,其中的例項類別已定,分類時,對新的例項,根據其k個最近鄰的訓練例項的類別,通過多數表決等方式來進行**。k近鄰不具有顯式的學習過程(lazy learning),實際是利用訓練資料集對特徵向量空間進行劃分。

k近鄰演算法的三個基本要素:

- 距離度量(常用歐式距離或者更一般的lp距離),見距離度量的blog。

- 分類決策規則(常用的多數表決,對應於經驗風險最小化)。

- k值的選擇(k值小時,模型更複雜;k值大,模型更簡單;特別的:k=1,最近鄰;k=n,無論輸入什麼,都**為訓練例項中最多的類。交叉檢驗選最優k值)。

k近鄰由cover和hart與2023年提出。cover t, hart p. nearest neighbor pattern classification. ieee transactions on information theory.

《building machine learning systems with python》

《machine learning in action》

《統計學習方法》

《機器學習》

k近鄰分類 kNN

k近鄰分類 knn 一 knn原理 knn屬於監督分類方法,原理是利用某種距離度量方式來計算未知資料與已知資料的距離,並根據距離來確定資料光譜間的相似性,選取最近的k個距離作為判定未知資料類別的依據。在分類時,knn常用方法有 投票法,根據k個距離對應已知資料的類別進行統計,把出現次數最多的類別作為...

K近鄰(KNN) 分類演算法

k近鄰 knn 分類演算法 knn是non parametric分類器 不做分布形式的假設,直接從資料估計概率密度 是memory based learning.knn不適用於高維資料 curse of dimension machine learning的python庫很多,比如mlpy 更多pa...

k近鄰法 kNN分類

模型原型 sklearn.neighbors.kneighborsclassifier n neighbors 5,weights uniform algorithm auto leaf size 30,p 2,metric minkowski metric params none,n jobs 1...