kNN(k近鄰演算法)

2021-07-16 20:37:48 字數 819 閱讀 6983

k近鄰分析(knn)

一、概述

knn演算法是一種有監督學習的分類演算法。所謂有監督學習,就是在應用演算法之前我們必須準備一組訓練集,訓練集中的每個例項都是由一些特徵和乙個分類標籤組成;通常還會存在乙個測試集,用來測試訓練出來的分類模型的準確性。其實knn演算法並沒有體現出有監督學習的所有特點,沒有模型,只有演算法。甚至可以說這就是一種暴力掃瞄法,執行效率上比較低效。

knn的具體演算法為:

二、knn的實現:

注:最後的多數表決相當於0-1最小風險。

三、knn的引數選擇:

(1)  

距離的選擇:lp範數

(2)  

k的選擇:k值的選擇會對k近鄰法的結果產生重大影響。如果k較小,相當於用較小的鄰域中的訓練例項進行**,「學習」的近似誤差會減小,只有與輸入例項較近的訓練例項才會對**產生作用,但是「學習」的估計誤差會增大,**的結果會對近鄰的例項點非常敏感,如果近鄰的例項點恰好是雜訊,**就會出錯,換而言之,k的值偏小,意味著模型變複雜,冗餘發生過擬合;如果選擇較大的k值,就相當於在較大的鄰域中的訓練例項進行**,其優點是可以減少學習的估計誤差,缺點是學習的近似誤差會增大,這是與輸入例項較遠的訓練例項也會對**起作用,使**發生錯誤。在應用中,k一般取乙個比較小的數值,通常採用交叉驗證法來取選擇最優的k值。

四、knn的實現-kd樹

實現k近鄰法時,主要考慮的問題是:如何對訓練資料進行快速k近鄰搜尋。最簡單的實現方法是線性掃瞄,這種方法比較耗時,為了提高k近鄰搜尋的效率,可以考慮特殊結構儲存資料,以減少計算距離的次數,具體方法有很多,kd樹(kd tree)就是其中的一種。

KNN k近鄰演算法

現在假如我們已經擁有了一些資料 稱為訓練資料集 ts,並且擁有所有資料的類別名 即每條資料應該歸於哪個類別。當我們要判斷一條不知類別的資料時,首先讓這條資料m和已經擁有的所有的資料ts中的每一條資料進行比較,然後根據比較結果選擇出和m最相似 一般是基於距離 的k條資料 k是個整數,並且通常是小於20...

kNN k近鄰演算法

一 knn演算法的思想 knn演算法作為機器學習演算法中非常有效比較容易掌握的演算法,其基本思想是採用測量不同特徵值之間的距離的方法進行分類。knn屬於監督學習演算法,它的工作原理是 存在乙個樣本資料集,訓練樣本集,並且樣本集中的每個資料都存在標籤,即我們知道樣本集中每乙個資料與所屬分類的對應關係。...

KNN k 近鄰演算法

usr bin env python coding utf 8 author jia shilin knn k nearest neighbor 演算法 思想 利用已知標籤的樣本集,來分類未知標籤的新資料,將新資料的 每個特徵和樣本進行比較,提取出樣本集中特徵最相似的資料分類標籤 knn演算法的流程...