KNN演算法的簡述

2021-10-06 21:47:57 字數 1345 閱讀 9712

by:yang liu

1.什麼是knn演算法。

knn(k-nearest neighbor)是資料探勘分類技術中最簡單的方法之一。所謂k最近鄰,就是k個最近的鄰居的意思,說的是每個樣本都可以用它最接近的k個鄰近值來代表。演算法的核心思想是如果乙個樣本在特徵空間中的k個最相鄰的樣本中的大多數屬於某乙個類別,則該樣本也屬於這個類別,並具有這個類別上樣本的特性。

可以通俗的理解為「物以類聚人以群分近朱者赤近墨者黑」。

2.knn演算法的原理

knn的原理就是當**乙個新的樣本x的時候,根據它距離最近的k個點是什麼類別來判斷x屬於哪個類別。換句話說就是在訓練集中資料和標籤已知的情況下,輸入測試資料,將測試資料的特徵與訓練集中對應的特徵進行相互比較,找到訓練集中與之最為相似的前k個資料,則該測試資料對應的類別就是k個資料**現次數最多的那個分類。

通用步驟:

1)計算測試資料與各個訓練資料之間的距離;

2)按照距離的遞增關係進行排序;

3)選取距離最小的k個點;

4)確定前k個點所在類別的出現頻率;

5)返回前k個點**現頻率最高的類別作為測試資料的**分類。

3.knn演算法的特點

knn是一種非參的,惰性的演算法模型(非參的意思並不是說這個演算法不需要引數,而是意味著這個模型不會對資料做出任何的假設。惰性是指knn沒有明確的訓練資料的過程,或者說這個過程很快)。

4.knn演算法的優點

(1)簡單,易於理解,易於實現,無估計引數;

(2)**效果好;

(3)適合對稀有事件進行分類;

(4)適用於多個分類的問題;

5.knn演算法的缺點

(1)當樣本不平衡時,如乙個類的樣本容量很大,而其他類樣本容量很小時,有可能導致當輸入乙個新樣本時,該樣本的k個鄰居中大容量類的樣本占多數。

(2)計算量較大,因為對每乙個待分類的樣本都要計算它到全體已知樣本的距離。

6.knn演算法的關鍵

k值得選取。

k太大導致分類模糊;k太小受個例影響,波動較大。

如何選取k值?

(1)憑藉經驗

(2)通過交叉驗證,從選取乙個較小的k值開始,不斷增加k的值,然後計算驗證集合的方差,最終找到乙個比較合適的k值。下圖表示當k=10時,所得結果最優。

參考文獻:

(1)(2)

簡述KNN演算法

knn 如果乙個樣本在特徵空間中的k個最相似 即特徵空間中最近鄰 的樣本中的大多數屬於某乙個類別,即該樣本也屬於這個類別。1 計算已知類別資料集中的點與當前點的距離 2 按距離遞增次序排序 3 選取與當前點距離最小的k個點 4 統計前k個點所在的類別出現的頻率 5 返回前k個點出現頻率最高的類別作為...

簡述KNN演算法及實現

numpy中shape 0 返回陣列的行數,shape 1 返回列數 datasetsize dataset.shape 0 將intx在橫向重複datasetsize次,縱向重複1次 例如intx 1,2 1,2 1,2 1,2 1,2 便於後面計算 diffmat np.tile intx,da...

KNN演算法的理解

最近看了大量關於knn k最近鄰 演算法的原理與實現,分享某大神寫的一篇簡介明了的博文,共同學習!一 演算法概述 1 knn演算法又稱為k近鄰分類 k nearest neighbor classification 演算法。最簡單平凡的分類器也許是那種死記硬背式的分類器,記住所有的訓練資料,對於新的...