1. 程式人生 > >機器學習實戰筆記(K近鄰)

機器學習實戰筆記(K近鄰)

最終 而是 類別 頻率 n) 簡單 因此 當前 要素

K近鄰算法(KNN)

k近鄰算法

??k近鄰(k-nearest neighbor,KNN)是一種基本的分類與回歸算法。於1968年由Cover和Hart提出。k近鄰的輸入是實例的特征向量,對應於特征空間的點;輸出為實例的類別,可以取多類。k近鄰算法假設給定一個訓練數據集,其中的實例類別已定,分類時,對新的實例,根據其k個最近鄰的訓練實例的類別,通過多數表決等方式進行預測。因此,k近鄰法不具有顯式的學習過程。簡單的說,給定一個訓練數據集,對新的輸入實例,在訓練集中找到與該實例最近鄰的k個實例,這k個實例的多數屬於哪個類,就把該輸入實例分為這個類。這就是k近鄰算法中k的出處,通常k是不大於20的整數。


??

  k近鄰算法的三個基本要素:k值的選擇、距離度量、分類決策規則

  k近鄰算法步驟:
  對未知類別屬性的數據集的每個點依次執行以下操作:

  (1) 計算已知類別數據集中的點與當前點之間的距離;
  (2) 按照距離遞增次序排序;
  (3)選取與當前點距離最小的k個點;
  (4)確定前k個點所在類別的出現頻率;
  (5)返回前k個點所出現頻率最高的類別作為當前點的預測分類

k近鄰算法總結

優點:
1. 簡單、有效、精度高;
2. 對離群值不敏感;
3. 無數據輸入假定;
4 .可用於數值型數據和離散型數據;

缺點:
1. 計算復雜度高、空間復雜度高;
2. 樣本不平衡問題(即有的類別的樣本數量很多,而其它類別的樣本數量很少),影響分類效果;
3. 一般數值很大的時候不用這個,計算量太大。但是單個樣本又不能太少 ,否則容易發生誤分;
4. 最大的缺點是無法給出數據的內在含義,無法給出任何數據的基礎結構信息,無法知曉平均實例樣本和典型實例樣本具有什麽特征。

註意事項
1. K值的設定
??較小的k值,學習的近似誤差減小,但是估計誤差會增大,意味著整體模型變得復雜,容易過擬合。
??較大的k值,學習的近似誤差增大,但是估計誤差會減小,意味著整體模型變得簡單。
??在應用中k值一般取一個比較小的數值。采用交叉驗證選取最優的k值。

2.優化改進
??在確定最終的類別時,不是簡單的使用多數表決投票,而是進行加權投票,距離越近權重越高。
??k近鄰法中,當訓練集、距離度量、k值和分類決策規則確定後,其結果唯一確定。
??k近鄰法的實現需要考慮如何快速搜索k個最近鄰點。kd樹是一種便於對k維空間中的數據進行快速檢索的數據結構。

機器學習實戰筆記(K近鄰)