機器學習 KNN演算法原理

2022-08-18 08:00:18 字數 1681 閱讀 6724

k近鄰(k-nearst neighbors,knn)是一種基本的機器學習演算法,所謂k近鄰,就是k個最近的鄰居的意思,說的是每個樣本都可以用它最接近的k個鄰居來代表。比如:判斷乙個人的人品,只需要觀察與他來往最密切的幾個人的人品好壞就可以得出,即「近朱者赤,近墨者黑」;knn演算法既可以應用於分類應用中,也可以應用在回歸應用中。

knn在做回歸和分類的主要區別在於最後做**的時候的決策方式不同.knn在分類**時,一般採用多數表決法;而在做回歸**時,一般採用平均值法。

knn演算法原理

1.從訓練集合中獲取k個離待**樣本距離最近的樣本資料;

2.根據獲取得到的k個樣本資料來**當前待**樣本的目標屬性值.

knn三要素

在knn演算法中,非常重要的主要是三個因素:

k值的選擇:對於k值的選擇,一般根據樣本分佈選擇乙個較小的值,然後通過交叉驗證來選擇乙個比較合適的最終值;當選擇比較小的k值的時候,表示使用較小領域中的樣本進行**,訓練誤差會減小,但是會導致模型變得複雜,容易過擬合;當選擇較大的k值的時候,表示使用較大領域中的樣本進行**,訓練誤差會增大,同時會使模型變得簡單,容易導致欠擬合;

距離的度量:一般使用歐氏距離(歐幾里得距離);

決策規則:在分類模型中,主要使用多數表決法或者加權多數表決法;在回歸模型中,主要使用平均值法或者加權平均值法。

knn分類**規則

在knn分類應用中,一般採用多數表決法或者加權多數表決法。

多數表決法:每個鄰近樣本的權重是一樣的,也就是說最終**的結果為出現類別最多的那個類.

加權多數表決法:每個鄰近樣本的權重是不一樣的,一般情況下採用權重和距離成反比的方式來計算,也就是說最終**結果是出現權重最大的那個類別

在knn回歸應用中,一般採用平均值法或者加權平均值法。

平均值法:每個鄰近樣本的權重是一樣的,也就是說最終**的結果為所有鄰近樣本的目標屬性值的均值;比如右圖中,藍色圓圈的最終**值為:2.6

加權平均值法:每個鄰近樣本的權重是不一樣的,一般情況下採用權重和距離成反比的方式來計算,也就是說在計算均值的時候進行加權操作

knn演算法實現方式

knn演算法的重點在於找出k個最鄰近的點,主要方式有以下幾種:

蠻力實現(brute):計算**樣本到所有訓練集樣本的距離,然後選擇最小的k個距離即可得到k個最鄰近點。缺點在於當特徵數比較多、樣本數比較多的時候,演算法的

執行效率比較低;

kd樹(kd_tree):kd樹演算法中,首先是對訓練資料進行建模,構建kd樹,然後再根據建好的模型來獲取鄰近樣本資料。

除此之外,還有一些從kd_tree修改後的求解最鄰近點的演算法,比如:ball tree、bbf tree、mvp tree等

kd tree

kd tree是knn演算法中用於計算最近鄰的快速、便捷構建方式。

當樣本資料量少的時候,我們可以使用brute這種暴力的方式進行求解最近鄰,即計算到所有樣本的距離。但是當樣本量比較大的時候,直接計算所有樣本的距離,工作量有點大,所以在這種情況下,我們可以使用kd tree來快速的計算。

kd tree構建方式  

kd樹採用從m個樣本的n維特徵中,分別計算n個特徵取值的方差,用方差最大的第k維特徵n k 作為根節點。對於這個特徵,選擇取值的中位數n kv 作為樣本的劃分點,對於小於該值的樣本劃分到左子樹,對於大於等於該值的樣本劃分到右子樹,對左右子樹採用同樣的方式找方差最大的特徵作為根節點,遞迴即可產生kd樹。

kd tree查詢最近鄰   

機器學習 KNN演算法原理 Spark實現

不懂演算法的資料開發者不是乙個好的演算法工程師,還記得研究生時候,導師講過的一些資料探勘演算法,頗有興趣,但是無奈工作後接觸少了,資料工程師的鄙視鏈,模型 實時 脫機數倉 etl工程師 bi工程師 不喜勿噴哈 現在做的工作主要是脫機數倉,當然前期也做過一些etl的工作,為了職業的長遠發展,拓寬自己的...

機器學習 KNN演算法原理 Spark實現

不懂演算法的資料開發者不是乙個好的演算法工程師,還記得研究生時候,導師講過的一些資料探勘演算法,頗有興趣,但是無奈工作後接觸少了,資料工程師的鄙視鏈,模型 實時 脫機數倉 etl工程師 bi工程師 不喜勿噴哈 現在做的工作主要是脫機數倉,當然前期也做過一些etl的工作,為了職業的長遠發展,拓寬自己的...

機器學習 演算法 KNN

參考 我感覺knn是最簡單的乙個機器學習演算法,實現很簡單,效果也一般般 就是算個euclideam distance,還有一些可以優化的地方,比如可以加權,第二篇文章提到了 python 如下 coding utf 8 created on aug 30,2013 author blacklaw ...