K NN演算法(K 近鄰演算法)

2021-09-24 17:48:28 字數 909 閱讀 3033

k-nn

演算法是一種分類演算法。所謂

k近鄰演算法,即是

給定乙個

訓練資料集,對新的

輸入例項,在

訓練資料集中找到與

該例項最鄰近的

k個例項(也就是k個

鄰居),這k

個例項的多數屬於某個

類,就把該輸入

例項分類到

這個類中。

例如:

如果k=3,綠

色圓點的最近的3個

鄰居是2個

紅色小三角形和1個

藍色小正方形,判定綠色的

這個待分

類點屬於

紅色的三角形一類。

如果k=5,綠

色圓點的最近的5個

鄰居是2個

紅色三角形和3個

藍色的正方形,判定綠色的

這個待分

類點屬於

藍色的正方形一類。

二維距離度量一般為兩個例項間的歐式距離。

如果資料特徵中存在非數值型的特徵, 則需要採取手段將其量化為數值。

k 值的選擇會對演算法的結果產生重大影響。在實際應用中,

k 值一般選擇乙個較小的數值,通常採用交叉驗證的方法來選擇最優的k 值

。缺點:

1.當樣本不平衡時,如乙個類的樣本容量較大,乙個類的樣本容量很小時,可能導致輸入乙個新樣本時,該樣本的k個鄰居中大容量類的樣本占多數,針對這一缺點,可以採用權值的方法(和該樣本距離小的鄰居權值大)來改進。

2.該方法的另乙個不足之處是計算量較大,因為對每乙個待分類的文字都要計算它到全體已知樣本的距離,才能求得它的k個最近鄰點。目前常用的解決方法是事先對已知樣本點進行剪輯,事先去除對分類作用不大的樣本。

K 近鄰演算法 KNN

knn k nearest neighbor 假設訓練集有記錄 r1 r2,rn共n條,訓練集的特徵向量及其對應的類別都是已知的,每個記錄的特徵向量為 t1 t2,tk共k個特徵,待測試的記錄為ru 1 計算ru 的特徵向量與訓練集的每條記錄 即r1 r2,rn 的特徵向量的歐式距離,選取距離最小的...

k近鄰演算法 kNN

核心思想 前k個最相似資料中出現次數最多的類別,作為新資料的類別。核心函式 計算距離函式,投票函式 coding utf 8 import random import sys from collections import counter from operator import itemgette...

K近鄰演算法 KNN

k近鄰演算法 knn 何謂k近鄰演算法,即k nearest neighbor algorithm,簡稱knn演算法,單從名字來猜想,可以簡單粗暴的認為是 k個最近的鄰居,當k 1時,演算法便成了最近鄰演算法,即尋找最近的那個鄰居。為何要找鄰居?打個比方來說,假設你來到乙個陌生的村莊,現在你要找到與...