資料探勘十大經典演算法 8 kNN

2021-07-23 23:59:09 字數 1794 閱讀 7779

1、k最近鄰(k-nearest  neighbor,knn)分類演算法,是乙個理論上比較成熟的方法,也是最簡單的機器學習演算法之一。該方法的思路是:如果乙個樣本在特徵空間中的k個最相似(即特徵空 

間中最鄰近)的樣本中的大多數屬於某乙個類別,則該樣本也屬於這個類別。 

2、knn演算法中,所選擇的鄰居都是已經正確分類的物件。該方法在定類決策上只依據最鄰近的乙個或者幾個樣本的類別來決定待分樣本所屬的類別。  knn方法雖然從原理上也依賴於極限定理,但在類別決策時,只與極少量的相鄰樣本有關。由於knn方法主要靠周圍有限的鄰近的樣本, 

而不是靠判別類域的方法來確定所屬類別的,因此對於類域的交叉或重疊較多的待分樣本集來說,knn方法較其他方法更為適合。  

3、knn演算法不僅可以用於分類,還可以用於回歸。通過找出乙個樣本的k個最近鄰居,將這些鄰居的屬性的平均值賦給該樣本,就可以得到該樣本的屬性。更有用的方法是將不同距離的 

鄰居對該樣本產生的影響給予不同的權值(weight),如權值與距離成正比。  

4、 該演算法在分類時有個主要的不足是 ,當樣本不平衡時,如乙個類的樣本容量很大,而其他類樣本容量很小時,有可能導致當輸入乙個新樣本時,該樣本的k個鄰居中大容量類的樣本占多數。因此可以採用權值的方法(和該樣本距離小的鄰居權值大)來改進。

該方法的另乙個不足之處是計算量較大,因為對每乙個待分類的文字都要計算它到全體已知樣本的距離,才能求得它的k個最近鄰點。目前常用的解決方法是事先對已知樣本點進行剪輯,事先去除對分類作用不大的樣本。該演算法比較適用於樣本容量比較大的類域的自動分類,而那些樣本容量較小的類域採用這種演算法比較容易產生誤分。 

演算法分類過程如下: 

1 首先我們事先定下k值(就是指k近鄰方法的k的大小,代表對於乙個待分類的資料點,我們要尋找幾個它的鄰居)。這邊為了說明問題,我們取兩個k值,分別為3和9; 

2 根據事先確定的距離度量公式(如:歐氏距離),得出待分類資料點和所有已知類別的樣本點中,距離最近的k個樣本。 

3 統計這k個樣本點中,各個類別的數量。根據k個樣本中,數量最多的樣本是什麼類別,我們就把這個資料點定為什麼類別。 

訓練樣本是多維特徵空間向量,其中每個訓練樣本帶有乙個類別標籤。演算法的訓練階段只包含儲存的特徵向量和訓練樣本的標籤。 在分類階段,k是乙個使用者定義的常數。乙個沒有類別標籤的向量 (查詢或測試點)將被歸類為最接近該點的k個樣本點中最頻繁使用的一類。

一般情況下,將歐氏距離作為距離度量,但是這是只適用於連續變數。在文字分類這種非連續變數情況下,

另乙個度量——重疊度量(或海明距離)可以用來作為度量。

通常情況下,如果運用一些特殊的演算法來計算度量的話,k近鄰分類精度可顯著提高,如運用大邊緣最近鄰法或者近鄰成分分析法。 

「多數表決」分類的乙個缺點是出現頻率較多的樣本將會主導測試點的**結果,那是因為他們比較大可能出現在測試點的k鄰域而測試點的屬性又是通過k領域內的樣本計算出來的。解決這個缺點的方法之一是在進行分類時將樣本到測試點的距離考慮進去。 

k值得選擇 

如何選擇乙個最佳的k值取決於資料。一般情況下,在分類時較大的k值能夠減小雜訊的影響。但會使類別之間的界限變得模糊。乙個較好的k值能通過各種啟發式技術來獲取,比如,交叉驗證。 

雜訊和非相關性特徵向量的存在會使k近鄰演算法的準確性減小。對於選擇特徵向量進行分類已經作了很多研究。乙個普遍的做法是利用進化演算法優化功能擴充套件[3],還有一種較普遍的方法是利用訓練樣本的互資訊進行選擇特徵。 

k近鄰演算法也適用於連續變數估計,比如適用反距離加權平均多個k近鄰點確定測試點的值。該演算法的功能有: 

1、從目標區域抽樣計算歐式或馬氏距離; 

2、在交叉驗證後的rmse基礎上選擇啟發式最優的k鄰域; 

3、計算多元k-最近鄰居的距離倒數加權平均。 

資料探勘十大經典演算法之KNN

k nearest neighbor algorithm 右圖中,綠色圓要被決定賦予哪個類,是紅色三角形還是藍色四方形?如果k 3,由於紅色三角形所佔比例為2 3,綠色圓將被賦予紅色三角形那個類,如果k 5,由於藍色四方形比例為3 5,因此綠色圓被賦予藍色四方形類。k最近鄰 k nearest ne...

資料探勘十大經典演算法之KNN演算法

knn 是通過測量不同特徵值之間的距離進行分類。它的思路是 如果乙個樣本在特徵空間中的 k個最相似 即特徵空間中最鄰近 的樣本中的大多數屬於某乙個類別,則該樣本也屬於這個類別,其中 k通常是不大於 20的整數。knn演算法中,所選擇的鄰居都是已經正確分類的物件。該方法在定類決策上只依據最鄰近的乙個或...

資料探勘十大經典演算法

最近想看看資料探勘是個什麼東西,因此特別的關注了下,首先看看資料探勘包含哪些演算法,網上找到了十大經典演算法 01.c4.5 是機器學習演算法中的一種分類決策樹演算法,其核心演算法是 id3演算法 02.k means演算法 是一種聚類演算法。03.svm 一種 監督式學習 的方法,廣泛運用於統計分...