1. 程式人生 > >機器學習(一)------KNN演算法

機器學習(一)------KNN演算法

一.K-近鄰演算法

1.距離的度量:

1.2 k值的選擇:

1.3 分類決策規則:

二.kd樹:

3.2:平衡kd樹:

3.2.2:搜尋kd樹:

                           

3.3用kd樹的最近鄰搜尋:

4.KNN總結:

5.具體流程:

k-近鄰演算法的一般流程
(1) 收集資料:可以使用任何方法。
(2) 準備資料:距離計算所需要的數值,最好是結構化的資料格式。
(3) 分析資料:可以使用任何方法。
(4) 訓練演算法:此步驟不適用於k-近鄰演算法。
(5) 測試演算法:計算錯誤率。
(6) 使用演算法:首先需要輸入樣本資料和結構化的輸出結果,然後執行k-近鄰演算法判定輸
入資料分別屬於哪個分類,最後應用對計算出的分類執行後續的處理。

優點

  • 簡單好用,容易理解,精度高,理論成熟,既可以用來做分類也可以用來做迴歸;
  • 可用於數值型資料和離散型資料;
  • 訓練時間複雜度為O(n);無資料輸入假定;
  • 對異常值不敏感。

缺點:

  • 計算複雜性高;空間複雜性高;
  • 樣本不平衡問題(即有些類別的樣本數量很多,而其它樣本的數量很少);
  • 一般數值很大的時候不用這個,計算量太大。但是單個樣本又不能太少,否則容易發生誤分。
  • 最大的缺點是無法給出資料的內在含義。

很多時候得對資料做歸一化處理。

參考資料: