KNN演算法 概述

2021-08-01 08:22:25 字數 968 閱讀 1248

在研究tld演算法時,裡面用到了乙個最近鄰分類器,作為knn的乙個特例(k=1),首先還是理解一下knn演算法。其實思想非常樸素,可以用:「近朱者赤,近墨者黑」 來理解。廢話少說,接著看。

1 knn概述

k最近鄰(k-nearest neighbor,knn)分類演算法,是乙個理論上比較成熟的方法,也是最簡單的機器學習演算法之一。該方法的思路是:如果乙個樣本在特徵空間中的k個最相似(即特徵空間中最鄰近)的樣本中的大多數屬於某乙個類別,則該樣本也屬於這個類別。knn演算法中,所選擇的鄰居都是已經正確分類的物件。該方法在定類決策上只依據最鄰近的乙個或者幾個樣本的類別來決定待分樣本所屬的類別。 knn方法雖然從原理上也依賴於極限定理,但在類別決策時,只與極少量的相鄰樣本有關。由於knn方法主要靠周圍有限的鄰近的樣本,而不是靠判別類域的方法來確定所屬類別的,因此對於類域的交叉或重疊較多的待分樣本集來說,knn方法較其他方法更為適合。 

knn演算法不僅可以用於分類,還可以用於回歸。通過找出乙個樣本的k個最近鄰居,將這些鄰居的屬性的平均值賦給該樣本,就可以得到該樣本的屬性。更有用的方法是將不同距離的鄰居對該樣本產生的影響給予不同的權值(weight),如權值與距離成正比(組合函式)。 

2 knn不足之處與改進方法

該演算法在分類時有個主要的不足是,當樣本不平衡時,如乙個類的樣本容量很大,而其他類樣本容量很小時,有可能導致當輸入乙個新樣本時,該樣本的k個鄰居中大容量類的樣本占多數。 該演算法只計算「最近的」鄰居樣本,某一類的樣本數量很大,那麼或者這類樣本並不接近目標樣本,或者這類樣本很靠近目標樣本。無論怎樣,數量並不能影響執行結果。可以採用權值的方法(和該樣本距離小的鄰居權值大)來改進。該方法的另乙個不足之處是計算量較大,因為對每乙個待分類的文字都要計算它到全體已知樣本的距離,才能求得它的k個最近鄰點。目前常用的解決方法是事先對已知樣本點進行剪輯,事先去除對分類作用不大的樣本。該演算法比較適用於樣本容量比較大的類域的自動分類,而那些樣本容量較小的類域採用這種演算法比較容易產生誤分。

K NN演算法概述

一 knn演算法 k nearestneighbor k臨近值演算法 在給出乙個資料點以後,判斷它和已有資料點之間的距離,取k個距離最近的點,這些點中存在的那一類點最多就講這個新的資料點歸位那一類。容易存在的問題 1.k 值過小,容易出現過擬合問題,結果就是在訓練集上準確度很高,但是在測試集上就很低...

k 近鄰演算法(KNN)演算法概述(分類器)

knn通過測量不同特徵值之間的距離進行分類。大致思路 乙個樣本在k個最相似 即特徵空間中最鄰近 的樣本中的大多數屬於某乙個類別。那麼該樣本也屬於這個類別。用圖來舉例子 1.資料預處理 主要是將提供的資料集處理成函式可以處理的資料 def file2matrix filename fr open fi...

KNN演算法 鄰近演算法

knn演算法是機器學習裡面比較簡單的乙個分類演算法了,整體思想比較簡單 計算乙個點a與其他所有點之間的距離,取出與該點最近的k個點,然後統計這k個點裡面所屬分模擬例最大的,則點a屬於該分類。這樣講可能還有點迷糊,下面用乙個例子來說明一下 電影名稱 打鬥次數 接吻次數 電影型別 california ...