統計學習方法讀書筆記(三) k近鄰法

2021-10-15 00:02:28 字數 2826 閱讀 3769

全部筆記的彙總貼:統計學習方法讀書筆記彙總貼

給定乙個訓練資料集,對新的輸入例項,在訓練資料集中找到與該例項最鄰近的k

kk個例項, 這k

kk個例項的多數屬於某個類,就把該輸入例項分為這個類。k

kk近鄰法沒有顯式的學習過程。

k近鄰法的特殊情況是k=1

k=1k=

1的情形,稱為最近鄰演算法。對於輸入的例項點(特徵向量)x

xx,最近鄰法將訓練資料集中與x

xx最鄰近點的類作為x

xx的類。

模型由三個基本要素一一 距離度量、k

kk值的選擇和分類決策規則決定。

k

kk近鄰法中,當訓練集、距離度量(如歐氏距離)、k

kk值及分類決策規則(如多數表決)確定後,對於任何乙個新的輸入例項,它所屬的類唯一地確定。

特徵空間中,對每個訓練例項點x

ix_i

xi​,距離該點比其他點更近的所有點組成 乙個區域,叫作單元(cell)。每個訓練例項點擁有乙個單元,所有訓練例項點的單元構成對特徵空間的乙個劃分。 最近鄰法將例項x

ix_i

xi​的類y

iy_i

yi​作為其單元中所有點的類標記(class label)。這樣,每個單元的例項點的類別是確定的。

特徵空間中兩個例項點的距離是兩個例項點相似程度的反映。x

ix_i

xi​和x

jx_j

xj​的l

pl_p

lp​距離定義為

l p(

xi.x

j)=(

∑l=1

n∣xi

(l)−

xj(l

)∣p)

1p

l_p(x_i.x_j)=\big(\sum_^n -x_j^|^p}\big)^

lp​(xi

​.xj

​)=(

l=1∑

n​∣x

i(l)

​−xj

(l)​

∣p)p

1​這裡的p≥1

p\ge 1

p≥1。當p=2

p=2p=

2時,稱為歐氏距離;當p=1

p=1p=

1時,稱為曼哈頓距離;當p=∞

p=\infty

p=∞時,它是各個座標距離的最大值,即l∞(

xi,x

j)

=max⁡l

∣xi(

l)−x

j(l)

∣l_\infty(x_i,x_j)=\max_l |x_i^-x_j^|

l∞​(xi

​,xj

​)=l

max​∣x

i(l)

​−xj

(l)​

∣如果選擇較小的k

kk如果選擇較大的k

kk值,就相當於用較大鄰域中的訓練、例項進行**。 其優點是可以減少學習的估計誤差, 但缺點是學習的近似誤差會增大。

如果k =n

k=nk=

n,那麼無論輸入例項是什麼,都將簡單地**它屬於在訓練例項中最多的類。

在應用中,k

kk值一般取乙個比較小的數值。通常採用交叉驗證法來選取最優的k

kk值。

k

kk近鄰法中的分類決策規則往往是多數表決,即由輸入例項的k

kk個鄰近的訓練例項中的多數類決定輸入例項的類。

直接看乙個例子來構造吧。

dat

a:t=

data:t=\

data:t

=很簡單的思想,就是先以x(1

)x^

x(1)

為座標軸,選取中位數為切點,將根節點對應的矩形區域切分為兩部分,切分由通過切分點並與座標軸x(1

)x^

x(1)

垂直的超平面實驗。

由根結點生成深度為1的左、右子結點:左子結點對應座標x(1

)x^

x(1)

小於切分點的子 區域,右子結點對應於座標x(1

)x^

x(1)

大於切分點的子區域。

依次類推,對深度為j

jj的結點,選擇x(l

)x^

x(l)

為切分的座標軸,其中l=j

(mod

k)+1

l=j(mod\;k)+1

l=j(mo

dk)+

1。由該結點生成深度為j+1

j+1j+

1的左、右子結點:左子結點對應座標x(l

)x^

x(l)

小於切分點的子區域,右子結點對應座標x(l

)x^

x(l)

大於切分點的子區域。

直到兩個子區域沒有例項存在時停止。

簡單來說,就是先通過構造好的kdkd

kd樹,向下查詢,找到包含該點的葉節點,然後以該點為圓心,兩點之間的距離為半徑畫圓。真正的鄰近點一定在這個圓的內部。我們依次返回這個葉節點的父節點和另一子節點,如果均不在,則返回父節點的父節點即它的另一子節點,直到返回到根節點。如果圓內沒有其他的點,則這個葉節點就是該點的最近鄰。如果有則更近的那個便是該點的最近鄰。

利用k dkd

kd樹可以省去對大部分資料點的搜尋,從而減少搜尋的計算量,平均複雜度為o

(log⁡n

)o(\log n)

o(logn)。

下一章傳送門:統計學習方法讀書筆記(四)-樸素貝葉斯法

統計學習方法讀書筆記 (三)k近鄰法

個人感覺k近鄰應該是所有統計學習方法裡最好理解的了,通俗來說就是在資料集中找距離測試資料x最近的k個資料樣本,如果a類的數量大於b類的數量,則將測試資料x歸為a類,書中也僅用了不到10頁來論述這個理論,除基本k近鄰理論,還有kd樹的闡述。分類決策規則 一般採用多數表決規則。假設每個資料樣本對應x 1...

《統計學習方法》讀書筆記 K近鄰法(KNN)

k近鄰法基本介紹 給定乙個訓練資料集,對新的輸入例項,在訓練資料集中找到與該例項最鄰近的k個例項,這k個例項的多數屬於某個類,就把該輸入例項分為這個類。分布描述為 1 根據給定的距離度量,在訓練集t中找出與例項x最近的k個點,涵蓋這k個點的x的領域記為nk x 2 在nk x 中,根據分類決策規則,...

統計學習方法筆記 K近鄰法

看完了knn演算法,感覺演算法挺簡單的,選擇k的大小,距離計算公式,分類決策三個部分就行了,並且三個部分用的東西都挺常見,沒什麼難度。後面的提到了乙個改進演算法,搜尋空間kd演算法,這樣可以幫助我們很快的找到k個最近鄰,運用中位數縮小搜尋空間,省去了對大部分資料點的搜尋。思想不難 k近鄰法是一種基本...