k最鄰近演算法 加權kNN

2021-08-07 21:55:21 字數 1434 閱讀 6487

上篇文章中提到為每個點的距離增加乙個權重,使得距離近的點可以得到更大的權重,在此描述如何加權。

該方法最簡單的形式是返回距離的倒數,比如距離d,權重1/d。有時候,完全一樣或非常接近的商品權重會很大甚至無窮大。基於這樣的原因,在距離求倒數時,在距離上加乙個常量:

weight = 1 / (distance + const)

這種方法的潛在問題是,它為近鄰分配很大的權重,稍遠一點的會衰減的很快。雖然這種情況是我們希望的,但有時候也會使演算法對雜訊資料變得更加敏感。

高斯函式比較複雜,但克服了前述函式的缺點,其形式:

其中a,b,c∈r

高斯函式的圖形在形狀上像乙個倒懸著的鐘。a是曲線的高度,b是曲線中心線在x軸的偏移,c是半峰寬度(函式峰值一半處相距的寬度)。

半峰寬度

上面的高斯函式在距離為0的時候權重為1,隨著距離增大,權重減少,但不會變為0。下圖是高斯函式和其它幾個函式的區別,其它函式在距離增大到一定程度時,權重都跌至0或0以下。

加權knn首先獲得經過排序的距離值,再取距離最近的k個元素。

1.在處理離散型資料時,將這k個資料用權重區別對待,**結果與第n個資料的label相同的概率:

2.在處理數值型資料時,並不是對這k個資料簡單的求平均,而是加權平均:通過將每一項的距離值乘以對應權重,讓後將結果累加。求出總和後,在對其除以所有權重之和。

代表近鄰i與待**值x的距離,w

i代表其權重,f(x)是**的數值型結果。每**乙個新樣本的所屬類別時,都會對整體樣本進行遍歷,可以看出knn的效率實際上是十分低下的。

K鄰近演算法 KNN

k nearest neighbor knn演算法 如果乙個樣本在特徵空間中的k個最相似 即特徵空間中最鄰近 的樣本中的大多數屬於某乙個類別,則該樣本也屬於這個類別。所選擇的鄰居都是已經正確分類的物件。如果k 3,則綠色圓形的類別與紅色三角形相同 如果k 5,則綠色圓形的類別與藍色正方形相同 the...

k最鄰近演算法 使用kNN進行手寫識別

上篇文章中提到了使用pillow對手寫文字進行預處理,本文介紹如何使用knn演算法對文字進行識別。k最鄰近演算法 k nearest neighbor,knn 是機器學習分類演算法中最簡單的一類。假設乙個樣本空間被分為幾類,然後給定乙個待分類的特徵資料,通過計算距離該資料的最近的k個樣本來判斷這個資...

K 最鄰近演算法總結

1.基本介紹 k最近鄰 k nearest neighbor,knn 分類演算法,是乙個理論上比較成熟的方法,也是最簡單的機器學習演算法之一。該方法的思路是 如果乙個樣本在特徵空間中的k個最相似 即特徵空間中最鄰近 的樣本中的大多數屬於某乙個類別,則該樣本也屬於這個類別。knn演算法中,所選擇的鄰居...