機器學習之KNN

2021-09-14 05:06:36 字數 1431 閱讀 3874

knn分類演算法(k-nearest-neighbors classification)即k近鄰演算法:給定乙個訓練資料集,對新的輸入例項,在訓練資料集中找到與該例項最鄰近的k個例項, 這k個例項的多數屬於某個類,就把該輸入例項分類到這個類中。

核心思想:要確定測試樣本屬於哪一類,就尋找所有訓練樣本中與該測試樣本「距離」最近的前k個樣本,然後看這k個樣本大部分屬於哪一類,那麼就認為這個測試樣本也屬於哪一類。

具體步驟

1、計算測試物件與訓練集中所有物件的距離,可以是歐式距離、余弦距離等,比較常用的是較為簡單的歐式距離。

2、找出上步計算的距離中最近的k個物件。

3、找出k個物件**現頻率最高的物件,其所屬的類別就是該測試物件所屬的類別。

數學表示式

輸入訓練集

x:樣本的特徵向量。

y:樣本的類別。

t:乙個特徵空間,包含輸入的樣本。

輸出x所屬類別y

過程:(1)根據給定的距離度量,在訓練集t中找出與x最鄰近的k個點,包含這k個點的x的鄰域記作n(k)。

(2)在n(k)中根據分類決策規則(如多數表決)決定x的類別y,其公式如下:

( 說明:當括號等式成立時i為1,否則為0。)

在輸出過程中需要注意的三個重要點:k值選擇,距離度量,分類決策規則。

下面來解釋。

k一般低於訓練樣本數的平方根,它的設定使用交叉檢驗的方法.

(以k=1為基準)

k值設定過小會降低分類精度;若設定過大,且測試樣本屬於訓練集中包含資料較少的類,則會增加雜訊,降低分類效果。

常見距離:曼哈頓距離,歐式距離和閔可夫斯基距離。

通式:

p=1時是 曼哈頓距離(manhattan distance):

p=2時是 歐式距離(euclidean distance) :

p=∞時:

knn分類**多使用多數表決法。

多數表決法:即訓練集裡和**的樣本特徵最近的k個樣本,**為裡面有最多類別數的類別。

knn回歸多使用選擇平均法。

選擇平均法:即最近的k個樣本的樣本輸出的平均值作為回歸**值。

結束

感謝閱讀!

機器學習之KNN

knn主要應用於文字分類 聚類分析 分析 降維等 中心思想是採用測量不同特徵值之間的距離方法進行分類 演算法非常簡單,不過這是乙個監督演算法,訓練資料需要經過人工標記。演算法中心思想是 計算候選樣本到所有訓練樣本之間的距離,選取k個最近距離資料中出現次數最多的分類作為新樣本的類別。from nump...

機器學習之KNN

以下部落格主要由兩部分構成。一是理論講解,而是 實現 因為工程上使用knn的頻率不是很高,所以 不是目的,一些 中的技巧就顯得很重要了 首先knn是什麼?k nearest neighbors knn 以下的均來自 貪心科技 不是打廣告,純粹是尊重智財權。因為便於投票分類 怎麼選擇合適的k,一般會用...

機器學習之KNN

knn又叫做k鄰近,即k nearst neighbors,屬於分類任務 用待測樣本較近的幾個樣本來代表待測樣本 k值的選擇 k值較大容易欠擬合,k值較小容易過擬合,可以通過交叉驗證來選取乙個較好的值 距離的度量 一般選用歐幾里得距離 決策的規則 在分類時選用多數表決法或者加權的多數表決法 在做回歸...