1. 程式人生 > >無參估計(上):KNN(K nearst neighbor)

無參估計(上):KNN(K nearst neighbor)

無參估計:根據直方圖定義概率公式:p(x)=\frac{k}{NV},其中V:the volume surrounding X,N:the total number of examples

k:the number of the example inside V.

我們將無參估計分為兩類:

  • 固定V,求解k (KDE)
  • 固定k,求解V(kNN)

本講圍繞kNN展開。

依舊從p(x)=\frac{k}{NV},我們對V進行定義:V=C_{D}R_{k}^{D}(x),其中R是點x與k個臨近點之間的距離。C是D維中單元範圍的大小。

定義為C_{D}=\frac{2\pi^{D/2}}{D*\Gamma(D/2)}。我們想將knn密度估計作為貝葉斯分類器:

  • 定義先驗概率(prior):p(w_{i})=\frac{N_{i}}{N}(表示屬於w類的樣本與總樣本數的比值)
  • 定義p(x|w_{i})=\frac{k_{i}}{N_{i}V}(在V約束下,來自w的樣本數k與來自w的總樣本數N的比值)
  • 根據貝葉斯公式:p(w_{i}|x)=\frac{P(x|w_{i})*P(w_{i})}{p(x)}=\frac{k_{i}}{k}
  • 以上為用knn做貝葉斯分類的過程

下面撇開無參估計,對KNN進行介紹。

1.演算法敘述

k近鄰是利用訓練資料對特徵特徵空間進行劃分,並作為其分類的模型。k近鄰三要素:

  • k值的選擇
  1. k值大,意味著模型簡單。也就是說資料點在離聚類中心很遠的時候,依舊可以歸類。這樣一來,近似誤差會變大,不那麼相似的資料點也會被歸類。
  2. k值小,意味著模型複雜。也就是說只有離聚類中心很近,才可以歸類。這樣一來,估計誤差會變大,如果周圍出現噪聲,預測會出錯。
  3. k值一般會選取一個較小的值,然後利用交叉驗證集進行選取最優的k值。
  • 距離度量

目前常用的有三種:L_{p}(x_{i},x_{j})=\left ( \sum_{l=1}^{N}|x_{i}^{l}- x_{j}^{l}|^p \right )^\frac{1}{p}

  1. 歐式距離p=2
  2. 曼哈頓距離p=1
  3. p=無窮大(計算出各個維度的絕對值之後,取其中的最大值)
  • 分類決策規則

多數表決:資料中的多數決定最後的類。

這種表決方法滿足經驗風險最小化,p(非x)=1-p(x),如果p(非x)代表錯分類的概率,那麼使得其最小即p(x)最大,也就是多數決策。

2.實現方法

給定一個輸入x,在訓練集上找到與其最鄰近的k個點(在前面的訓練中我們已經確定了訓練集中每個點屬於哪個類,標記為N(k)。

然後分別在N(k)上,使用已經定義好的距離度量來計算每個類的N(k)上的點與x的距離之和,取距離之和最大的那一個類。

我們一般用kd樹來實現這個過程。

例子:給定一個二維空間的資料集:

T={(2,3)^T,(5,4)^T,(9,6)^T,(4,7)^T,(8,1)^T,(7,2)^T}

構造一個平衡kd樹。

首先我們需要進行特徵空間劃分:

step1:在二維空間中繪畫出點。

step2:按照x^{(1)}維進行劃分。選x^{(1)}的中位數繪製超平面。這二維空間中,則是繪製一條直線。

在本例中,x^{(1)}則是(2,5,9,4,8,7)的中位數。(x1,x2)中x1。

step3:對於深度為j的節點,選擇x^{(l)}為切分的座標軸。l=j(mod k)+1。

在本例中,為二維空間。l屬於{1,2}。至於深度,根據樹的深度定義,

根節點(劃分的第一個節點深度為1)依次類推不斷加深。本次,j=1,k=2

則l=2,則第二次劃分以x^{(2)}為座標軸。左平面,(3,4,7)中位數為3

在右平面,中位數為6.

step4:重複以上步驟。節點(2,3)、(4,7)深度為2,則2mod2+1=1;

則以x^{(1)}為軸進行劃分。(8,1)同理。

根據特徵空間劃分:

第一次劃分為根節點,依次類推。

3.K近鄰搜尋:

比如:搜尋點W:

step1:確定目標X,以及包含X的葉節點。通過將X放在特徵空間,即可確定葉節點。比如在圖中,W放在特徵空間中,則可以看到葉節點為D.以D作為最近鄰,真正的最近鄰一定在以S為中心的圓中。

step2:退回到該葉節點的父節點,在該父節點的另一個子節點上搜索最近鄰。在本例中,即在退回到B節點,在E節點周圍查詢最近鄰。該節點與區域圓相交,但是其實B節點比D節點更近,則B為最近鄰。

step3:重複以上過程,直到把所有相交區域查完為止。