機器學習之k近鄰簡介。knn是常見的監督學習演算法,輸入是例項的特徵向量,輸出是例項對應的類別。
給定測試樣本,基於某種距離計算方法,計算出與其距離最近的k個訓練樣本,根據多數表決方法判定屬於哪個類別。
典型的懶惰學習演算法,不具有顯示的學習過程。在接受資料時,不做處理,當真正計算的時候才按照演算法流程走。
三大要素:
k值的選擇
較小的k,會導致過擬合 較大的k,會導致欠擬合 距離的度量。
不同的距離度量演算法所確定的點的距離是不同的。
lp距離 min距離 分類決策規則根據已知的例項作為參考 選擇k(一般選擇奇數,並且需要多次試驗來確定) 計算所有樣本與輸入樣本之間的關係(計算方法有許多種) 將距離排序,並選擇最僅的k個例項 在k個樣本中,根據多數表決(加權平均)原則把輸入例項歸結為該類
kd樹的構造。
由於knn可能的資料量比較大,導致時間複雜度非常大,為了提公升效率,引出了kd樹資料結構(kd tree)。
平衡kd樹未必是效率最高的。
演算法的複雜度高,需要大量空間預先儲存例項
當某類資料佔據較多的時候,容易把例項歸納為該類,產生誤差
泛化錯誤低
該演算法要求訓練樣本足夠大,才能在資料點附近找到需要的點。
在高維情況下出現的資料樣本稀疏,距離計算困難等,是所有ml演算法共同面臨的問題。稱為數災難。這裡需要根據具體需求,降維處理
加權knn
不是對元素簡單的求平均,而是求他的加權平均
每一項的值*他的權重。
降維距離計算的各種演算法(歐氏距離,曼哈頓距離等)
kdtree
balltree
機器學習之K近鄰
k近鄰演算法在機器學習演算法中是最容易理解並且是最容易使用的演算法,下面是機器學習實戰中對k近鄰演算法的注釋。created on sep 16,2010 knn k nearest neighbors input inx vector to compare to existing dataset ...
機器學習之k近鄰
knn演算法假設給定的訓練集中的例項都已經分好類了,對於新的例項,根據離它最近的k個訓練例項的類別來 它的類別。即這k個例項大多數屬於某個類別則該例項就屬於某個類別。比如k為5,離新例項a最近的5個樣本的情況為,3個樣本屬於a類,1個樣本屬於b類,乙個樣本屬於c類,那麼新例項a屬於a類。k值的選取可...
機器學習之k 近鄰演算法
k nearest neighbor演算法又叫knn演算法,這個演算法是機器學習裡面乙個比較經典的演算法,總體來說knn演算法是相對比較容易理解的演算法 定義 如果乙個樣本在特徵空間中的k個最相似 即特徵空間中最鄰近 的樣本中的大多數屬於某乙個類別,則該樣本也屬於這個類別 2 相似度 就是指兩個點之...