【k近鄰】 K-Nearest Neighbors算法原理及流程
【k近鄰】 K-Nearest Neighbors算法距離度量選擇與數據維度歸一化
【k近鄰】 K-Nearest Neighbors算法k值的選擇
【k近鄰】 Kd樹的構造與最近鄰搜索算法
【k近鄰】 Kd樹構造與最近鄰搜索示例
k近鄰算法(K-Nearest Neighbors,簡稱KNN)是一種常用的監督學習算法,可以用于分類和回歸問題。在OpenCV中,KNN算法的函數為`cv.ml.KNearest_create()。?
k值的選擇
- 選擇較小的k值
- 噪聲敏感
- K值的減小意味著著整體模型會變得復雜,容易發生過擬合情況
- 學習的近似誤差(approximation error)會減小,但學習的估計誤差(estimation error)會增大
過擬合:在訓練集上準確率非常高,而在測試集上準確率低
- 選擇較大的k值
- K值的增大意味著整體的模型會變得簡單
- 學習的估計誤差(estimation error)會減小,但學習的近似誤差(approximation error)會增大
- 合理的選擇方式:一般先選取一個較小的k值,然后采取交叉驗證法來選取最優的k值,即實驗調參,類似于神經網絡通過調整超參數來得到一個較好的層數。
k近鄰算法優缺點
- 優點
- 精度高
- 對異常值不敏感
- 無數據輸入假定
- 缺點
- 計算復雜度高
- 空間復雜度高