機器學習(一)------KNN演算法
阿新 • • 發佈:2019-01-23
一.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);無資料輸入假定;
- 對異常值不敏感。
缺點:
- 計算複雜性高;空間複雜性高;
- 樣本不平衡問題(即有些類別的樣本數量很多,而其它樣本的數量很少);
- 一般數值很大的時候不用這個,計算量太大。但是單個樣本又不能太少,否則容易發生誤分。
- 最大的缺點是無法給出資料的內在含義。
很多時候得對資料做歸一化處理。
參考資料: