所謂k-近鄰(knn)是基本且簡單的分類與回歸方法,說的就是每個樣本的分類都可以用它最接近的k個鄰居來代表。
1、對給定的訓練例項點和輸入例項點,首先確定輸入例項點的k個最近鄰訓練例項點,然後利用這k個訓練例項點的類的多數來**輸入例項點的類。
2、k近鄰模型對應於基於訓練資料集對特徵空間的乙個劃分。k近鄰法中,當訓練集、距離度量、k值及分類決策規則確定後,其結果唯一確定
3、k近鄰法三要素:
(1) 距離度量、k值得選擇和分類決策規則。常用的距離度量是歐氏距離及更一般的lp距離。k值小時,k近鄰模型更複雜;k值大時,k近鄰模型更簡單。
(2)k值得選擇反映了對近似誤差與估計誤差之間得權衡,通常由交叉驗證選擇最優的k。
(3)常用的分類決策規則是多數表決,對應於經驗風險最小化。
4、k近鄰法的實現需要考慮如何快速搜尋k個最近鄰點。kd樹是一種便於對k維空格鍵中的資料進行快速檢索的資料結構。kd樹是二叉樹,表示對k維空間的乙個劃分,其每個節點對應於k維空間劃分中的乙個超矩形區域。利用kd樹可以省去對大部分資料點的搜尋,從而減少搜尋的計算量。
k近鄰法最簡單的實現是線性掃瞄,及計算輸入例項與每乙個訓練例項的距離。但是,當訓練集很大的時候,計算將非常耗時。為了提高k近鄰搜尋的效率,可採用kd樹的方法。
1、kd樹是一種對k維空間中的例項點進行儲存以便對其進行快速檢索的樹形資料結構。
2、kd樹是二叉樹,表示對k維空間的乙個劃分。構造kd樹相當於不斷地用垂直於座標軸的超平面將k維空間切分,構成一系列的k維超矩形區域。kd樹的每乙個結點對應於乙個k維超矩形區域。
3、構造kd樹的方法如下:
(1)構造根結點,使得根結點對應於k維空間中包含所有例項點的超矩形區域;
(2)通過下面的遞迴方法,不斷地對k維空間進行切分,生成子結點。
(3)在超矩形區域(結點)上選擇乙個座標軸和在此座標軸上的乙個切分點,確定乙個超平面,這個超平面通過選定的且分店並垂直於選定的座標軸,將當前超矩形區域且分為左右兩個子區域(子結點);這時,例項被分到兩個字區域。
(4) 這個過程直到子區域內沒有例項時終止(終止時的結點為葉節點)。在此過程中,將例項儲存在相應的結點上。
網上有關於kd樹的乙個詳細解釋,裡面的和文字解析,有助於理解
通常,依次選擇座標軸對空間劃分,選擇訓練例項點在選定座標軸上的中位數為切分點,這樣得到的kd樹是平衡的。
knn是比較容易理解的乙個演算法,所以在此很少去講述。網上有很多優秀的博主對此進行詳細的講述。
例如下面的大牛:
謝廠節:
jack-cui :
統計學習方法 K近鄰演算法
目錄 k近鄰的思想 距離怎麼算 k的取值 規則 應用 kd樹 kd樹的構建 kd樹的搜尋 今天介紹的k近鄰演算法是一種思想非常簡單的分類回歸演算法。顧名思義,結果肯定是和樣本最靠近的k個鄰居有很大的關係。不同於其他演算法,需要先訓練模型才可以進行 k近鄰演算法直接選擇與我們要 的樣本點距離最近的k個...
統計學習方法 k近鄰法
k近鄰法 knn 是一種基本的分類與回歸方法 分類這種需求,滲透到我們生活的方方面面 分類演算法可以幫助我們完成這些繁瑣的操作,並根據我們的要求不斷修正分類結果。分類演算法其實蠻多的,這裡順著書本順序,詳細講解knn演算法,再與k means k means 演算法進行簡單對比。k近鄰法是這樣乙個過...
統計學習方法 K近鄰法
k近鄰演算法簡單 直觀給定乙個訓練資料集,對新的輸入例項,在訓練資料集中找到與該例項最鄰近的k個例項,這k個例項的多數屬於某個類,就把該輸入例項分為這個類.下面先敘述k近鄰演算法,然後再討論其細節。近鄰法的特殊情況 k 1情形,稱為最近鄰演算法.對於輸入的例項點 特徵向量 x xx,最近鄰法將訓練資...