上篇文章中提到為每個點的距離增加乙個權重,使得距離近的點可以得到更大的權重,在此描述如何加權。
該方法最簡單的形式是返回距離的倒數,比如距離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演算法中,所選擇的鄰居...