KNN算法--個人總結


KNN

如果一個樣本在特征空間中的k個最相鄰的樣本中的大多數屬於某一個類別,則該樣本也屬於這個類別,並具有這個類別上樣本的特性。

在k-NN分類中,輸出是一個分類族群。一個對象的分類是由其鄰居的“多數表決”確定的,k個最近鄰居(k為正整數,通常較小)中最常見的分類決定了賦予該對象的類別。若k = 1,則該對象的類別直接由最近的一個節點賦予。

在k-NN回歸中,輸出是該對象的屬性值。該值是其k個最近鄰居的值的平均值。

選取k值以及它的影響

我們可以得到k太小會導致過擬合,選取較大的k值,就相當於用較大鄰域中的訓練數據進行預測,這時與輸入實例較遠的(不相似)訓練實例也會對預測起作用,使預測發生錯誤。選取k值很重要的關鍵是實驗調參(通常采取交叉驗證法來選取最優的k值。),類似於神經網絡選取多少層這種,通過調整超參數來得到一個較好的結果。

最鄰近是如何度量呢?

P=2歐氏距離   p=1 曼哈頓距離

特征歸一化的必要性

為了保證每個特征同等重要性,我們這里對每個特征進行歸一化。

優點

1、理論成熟,思想簡單,既可以用來做分類也可以用來做回歸;

2、可用於非線性分類;

3、訓練時間復雜度為O(n);

4、對數據沒有假設,准確度高,對outlier不敏感;

5、KNN是一種在線技術,新數據可以直接加入數據集而不必進行重新訓練;

6、KNN理論簡單,容易實現;

缺點

1、樣本不平衡問題(即有些類別的樣本數量很多,而其它樣本的數量很少)效果差;

2、需要大量內存;

3、對於樣本容量大的數據集計算量比較大(體現在距離計算上);

4、樣本不平衡時,預測偏差比較大。如:某一類的樣本比較少,而其它類樣本比較多;

5、KNN每一次分類都會重新進行一次全局運算;

6、k值大小的選擇沒有理論選擇最優,往往是結合K-折交叉驗證得到最優k值選擇;

 

 

參考:https://zhuanlan.zhihu.com/p/25994179

https://easyai.tech/ai-definition/k-nearest-neighbors/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM