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值選擇;