KNN总结
本篇博客是對KNN關鍵知識點的總結,包括以下幾個方面:
1.KNN原理介紹
kNN算法的核心思想是如果一個樣本在特征空間中的k個最相鄰的樣本中的大多數屬于某一個類別,則該樣本也屬于這個類別,并具有這個類別上樣本的特性。該方法在確定分類決策上只依據最鄰近的一個或者幾個樣本的類別來決定待分樣本所屬的類別。 kNN方法在類別決策時,只與極少量的相鄰樣本有關。由于kNN方法主要靠周圍有限的鄰近的樣本,而不是靠判別類域的方法來確定所屬類別的,因此對于類域的交叉或重疊較多的待分樣本集來說,kNN方法較其他方法更為適合。
2.KNN的超參數有哪些?
一.k值得選取
二.距離計算方法
三.權重
3.不平衡的樣本可以給KNN的預測結果造成哪些問題,有沒有什么好的解決方式?
輸入實例的K鄰近點中,大數量類別的點會比較多,但其實可能都離實例較遠,這樣會影響最后的分類。
可以使用權值來改進,距實例較近的點賦予較高的權值,較遠的賦予較低的權值。
4.為了解決KNN算法計算量過大的問題,可以使用分組的方式進行計算,簡述一下該方式的原理。
先將樣本按距離分解成組,獲得質心,然后計算未知樣本到各質心的距離,選出距離最近的一組或幾組,再在這些組內引用KNN。本質上就是事先對已知樣本點進行剪輯,事先去除對分類作用不大的樣本,該方法比較適用于樣本容量比較大時的情況。
5.KNN中的K如何選取的?
一般選取較小的K值,然后使用交叉驗證對比選擇最優的K值。
6.什么是KD樹?
KD樹是對K維空間中的實例點進行存儲,便于快速查找檢索的二叉樹。
7.KD樹建立過程中切分維度的順序是否可以優化?
可以先對每一維度求方差,方差大說明數據分布越分散,則從方差大的維度來逐步切分,可以取得更好的切分效果及樹的平衡性。
8.KD樹每一次繼續切分都要計算該子區間在需切分維度上的中值,計算量很大,有什么方法可以對其進行優化?
在構建KD樹前,依據每一維度先排序,在之后的切分中直接使用。
?
9.KNN算法有哪些優點和缺點?
?
優點:算法思想較簡單,既可以做分類也可以做回歸;可以用于非線性分類/回歸;訓練時間復雜度為O(n);對數據沒有假設,對離群點不敏感;
?
缺點:K計算量大;存在類別不平衡問題;需要大量的內存;
?
轉載于:https://www.cnblogs.com/r0825/p/11186976.html
總結
- 上一篇: 理解AMD ,CMD,CommonJS规
- 下一篇: 中行信用卡宽限期内有罚息吗