輸入為特徵向量,輸出為多個類別。在k近鄰法中,例項的類別已定,分類時,對新的例項,根據其k個最近鄰的訓練例項的類別,通過多數表決等方式進行**。
其基本要素為k值的選擇、距離度量以及分類決策規則。
簡單描述:給定乙個訓練集,對新的輸入例項,找到與其最鄰近的k個例項,這k個例項的多數屬於哪個類,該輸入例項就被分為哪個類
演算法:
輸入:訓練資料集;輸出:某個例項所屬的類別
1)根據給定的距離度量,找到與
x x
最鄰近的k個點,涵蓋這k個點的鄰域稱為nk
(x)' role="presentation" style="position: relative;">nk(
x)nk
(x)2)在nk
(x) nk(
x)中根據分類決策規則決定
x x
的類別 y=
arg
maxcj
∑xi∈
nk(x
)i(y
i=cj
),i=
1,2,
⋯,k' role="presentation" style="position: relative;">y
=arg
maxcj∑
xi∈n
k(x)
i(yi
=cj)
,i=1
,2,⋯
,ky=
arg
maxcj
∑xi∈
nk(x
)i(y
i=cj
),i=
1,2,
⋯,k一般所用的距離度量為p=1,p=2或者p=無窮,其對應圖形為:
k值的選擇:
k值較小,則近似誤差會減小,但估計誤差會增大,**結果會對附近的例項點非常敏感,也就是說,k值越小,意味著模型越複雜
k值較大,近似誤差會比較大,但估計誤差會減小,這時較遠的訓練示例也會對**起作用,使**發生錯誤,k值越大,意味著模型越簡單
分類決策規則:多數表決規則,等價於經驗風險最小化
上文中,已經將k近鄰法的實現步驟基本講解清楚,唯一的問題是,怎麼快速的找到k個近鄰點,這就需要通過k近鄰樹來實現搜尋,通過以下示例給出:
統計學習方法筆記 K近鄰法
看完了knn演算法,感覺演算法挺簡單的,選擇k的大小,距離計算公式,分類決策三個部分就行了,並且三個部分用的東西都挺常見,沒什麼難度。後面的提到了乙個改進演算法,搜尋空間kd演算法,這樣可以幫助我們很快的找到k個最近鄰,運用中位數縮小搜尋空間,省去了對大部分資料點的搜尋。思想不難 k近鄰法是一種基本...
統計學習方法 k近鄰法
k近鄰法 knn 是一種基本的分類與回歸方法 分類這種需求,滲透到我們生活的方方面面 分類演算法可以幫助我們完成這些繁瑣的操作,並根據我們的要求不斷修正分類結果。分類演算法其實蠻多的,這裡順著書本順序,詳細講解knn演算法,再與k means k means 演算法進行簡單對比。k近鄰法是這樣乙個過...
統計學習方法 K近鄰法
k近鄰演算法簡單 直觀給定乙個訓練資料集,對新的輸入例項,在訓練資料集中找到與該例項最鄰近的k個例項,這k個例項的多數屬於某個類,就把該輸入例項分為這個類.下面先敘述k近鄰演算法,然後再討論其細節。近鄰法的特殊情況 k 1情形,稱為最近鄰演算法.對於輸入的例項點 特徵向量 x xx,最近鄰法將訓練資...