機器學習演算法總結3 k近鄰法

2021-10-02 23:24:54 字數 1791 閱讀 1415

k近鄰法(k-nn)是一種基本分類與回歸方法演算法思想:給定乙個訓練資料集,對新的輸入例項,在訓練資料集中找到與其最鄰近的k個例項,這k個例項的多數屬於某個類,就把該輸入例項分為哪個類。

k近鄰的特殊情況是k=1的情形,稱為最近鄰演算法

k近鄰演算法沒有顯式的學習過程。

1.模型:k近鄰法使用的模型對應於對特徵空間的劃分。

k近鄰法中,當訓練集、k值、距離度量(如歐式距離)及分類決策規則確定後,對於任何乙個新的輸入例項,它所屬的類唯一地確定。

模型的三個基本要素:k值的選擇、距離度量以及分類決策規則

(1)k值的選擇

k值較小,意味著整體模型變得複雜,容易發生過擬合;k值較大,意味著整體模型變得簡單,容易發生欠擬合。k值的選擇反映了對近似誤差和估計誤差之間的權衡,通常由交叉驗證選擇最優的k。

(2)距離度量

特徵空間中兩個例項點的距離是兩個例項點相似程度的反映。k近鄰模型使用的距離是歐氏距離,更一般的距離是閔可夫斯基距離。

不同的距離度量所確定的最近鄰點是不同的,如下圖所示:

2.策略:(3)分類決策規則

k近鄰法中的分類決策規則大多選擇多數表決,即由輸入例項的k個近鄰的訓練例項中的多數類決定輸入例項的類,對應於經驗風險最小化。

3.演算法

為了提高k近鄰的搜尋效率,使用kd樹儲存訓練資料,kd樹是對k維空間中的例項點進行儲存以便對其進行快速檢索的樹形資料結構。kd樹是二叉樹,表示對k維空間的乙個劃分,其每個結點對應於k維空間劃分中的乙個超矩形區域。

kd樹的每輪中本次的切分域的選擇將計算待切分空間內的點此輪未被切分維度上的方差,找到方差最大的維度作為此次的切分域。方差較大,表明在該維度上的點的分散度較高,按該維度切分解析度較高。(注:特徵選擇中,方差選擇法也是這個原理。)

kd樹的最近鄰搜尋演算法:

kd樹的平均計算複雜度是o(logn),n為訓練例項數。kd樹更適合於訓練例項數大於空間維數時的k近鄰搜尋。

統計機器學習 3 K近鄰法(二)Kd Tree

為什麼需要kd樹呢?因為在實現k近鄰法時,主要考慮的問題是如何對訓練資料進行快速k近鄰搜尋,這點在特徵空間的維度大及訓練資料容量大時尤其必要。k近鄰法最簡單的實現方法是線性掃瞄,這時要計算輸入例項與每乙個訓練例項點的距離,當訓練集很大時,計算非常耗時,這種方法是不可行的。為了提高k近鄰搜尋的效率,可...

機器學習 統計學習方法 3 k近鄰法 筆記

注 本章只介紹分類問題的k近鄰演算法。t t t 其中,xi x rn x i in mathcal subset r n xi x rn為例項的特徵變數,yi y y i in mathcal yi y 為例項的類別,i 1 2,3 n i 1,2,3,n i 1,2,3,n 例項特徵變數 xxx...

統計學習方法 3K近鄰法

1968年由cover和hart提出。k近鄰法假設給定乙個訓練資料集,其中的例項類別已定。分類時,對新的例項,根據其k個最近鄰的訓練例項的類別,通過多數表決等方式進行 k近鄰法實際上利用訓練資料集對特徵向量空間進行劃分,並作為其分類的 模型 k近鄰法三要素 k值得選擇 距離度量和分類決策規則。lp距...