核密度估計,或Parzen窗,是非參數估計機率密度的一種。好比機器學習中還有K近鄰法也是非參估計的一種,不過K近鄰一般是用來判別樣本類別的,就是把樣本空間每一個點劃分爲與其最接近的K個訓練抽樣中,佔比最高的類別。算法
首先從直方圖切入。對於隨機變量$X$的一組抽樣,即便$X$的值是連續的,咱們也能夠劃分出若干寬度相同的區間,統計這組樣本在各個區間的頻率,並畫出直方圖。下圖是均值爲0,方差爲2.5的正態分佈。從分佈中分別抽樣了100000和10000個樣本:機器學習
這裏的直方圖離散地取了21個相互無交集的區間:$[x-0.5,x+0.5), x=-10,-9,...,10$,單邊間隔$h=0.5$。$h>0$在覈函數估計中一般稱做帶寬,或窗口。每一個長條的面積就是樣本在這個區間內的頻率。若是用頻率當作機率,則面積除以區間寬度後的高,就是擬合出的在這個區間內的平均機率密度。由於這裏取的區間寬度是1,因此高與面積在數值上相同,使得長條的頂端正好與密度函數曲線相契合。若是將區間中的$x$取成任意值,就能夠擬合出實數域內的機率密度(其中$N_x$爲樣本$x_i\in [x-h,x+h),i=1,...,N$的樣本數):函數
$\displaystyle\hat{f}(x)=\frac{N_x}{N}\cdot\frac{1}{2h}$學習
這就已是核函數估計的一種了。顯然,抽樣越多,這個平均機率密度能擬合得越好,正如藍條中上方几乎都與曲線契合,而橙色則稂莠不齊。另外,若是抽樣數$N\to \infty$,對$h$取極限$h\to 0$,擬合出的機率密度應該會更接近真實機率密度。可是,因爲抽樣的數量老是有限的,無限小的$h$將致使只有在抽樣點處,纔有頻率$1/N$,而其它地方頻率全爲0,因此$h$不能無限小。相反,$h$太大的話又不能有效地將抽樣量用起來。因此這二者之間應該有一個最優的$h$,能充分利用抽樣來擬合機率密度曲線。容易推理出,$h$應該和抽樣量$N$有關,並且應該與$N$成反比。orm
爲了便於拓展,將擬合機率密度的式子進行變換:blog
$\displaystyle\hat{f}(x)=\frac{N_x}{2hN} = \frac{1}{hN}\sum\limits_{i=1}^{N}\begin{cases}1/2& x-h\le x_i < x+h\\ 0& else \end{cases}$it
$\displaystyle = \frac{1}{hN}\sum\limits_{i=1}^{N}\begin{cases} 1/2,& -1\le \displaystyle\frac{x_i-x}{h} < 1\\ 0,& else \end{cases}$form
$\displaystyle = \frac{1}{hN}\sum\limits_{i=1}^{N}\displaystyle K(\frac{x_i-x}{h}),\;\; where \; K(x) =\begin{cases} 1/2,& -1\le x < 1\\ 0,& else \end{cases}$變量
獲得的$K(x)$就是uniform核函數(也又叫方形窗口函數),這是最簡單最經常使用的核函數。形象地理解上式求和部分,就是樣本出如今$x$鄰域內部的加權頻數(由於除以了2,因此所謂「加權」)。核函數有不少,常見的還有高斯核函數(高斯窗口函數),即:im
$\displaystyle K(x) = \frac{1}{\sqrt{2\pi}}e^{-x^2/2}$
各類核函數以下圖所示:
並非全部函數都能做爲核函數的,由於$\hat{f}(x)$是機率密度,則它的積分應該爲1,即:
$\displaystyle\int\limits_{R}\hat{f}(x) dx = \int\limits_{R}\frac{1}{hN}\sum\limits_{i=1}^{N} K(\frac{x_i-x}{h})dx =\frac{1}{hN}\sum\limits_{i=1}^{N} \int_{-\infty}^{\infty} K(\frac{x_i-x}{h})dx$
令$\displaystyle t = \frac{x_i-x}{h}$
$\displaystyle =\frac{1}{N}\sum\limits_{i=1}^{N} \int_{\infty}^{-\infty} -K(t)dt$
$\displaystyle=\frac{1}{N}\sum\limits_{i=1}^{N} \int_{-\infty}^{\infty} K(t)dt=1$
因積分部分爲定值,因此可得$K(x)$須要的條件是:
$\displaystyle\int_{-\infty}^{\infty} K(x)dx=1$
一般$K(x)$是偶函數,並且不能小於0,不然就不符合實際了。
正如前面提到的,帶寬$h$的大小關係到擬合的精度。對於方形核函數,$N\to \infty$時,$h$一般取收斂速度小於$1/N$的值便可,如$h=1/\sqrt{N}$。對於高斯核,有證實指出$\displaystyle h=\left ( \frac{4 \hat{\sigma}^5 }{3N} \right )^{\frac{1}{5}}$時,有較優的擬合效果($\hat{\sigma}^2$是樣本方差)。具體的帶寬選擇還有更深刻的算法,具體問題仍是要具體分析,就先不細究了。使用高斯核時,待擬合的機率密度應該近似於高斯分佈那樣連續平滑的分佈,若是是像均勻分佈那樣有明顯分塊的分佈,擬合的效果會不好。我認爲緣由應該是它將離得很遠的樣本也用於擬合,致使本該突兀的地方都被均勻化了。
Epanechnikov在均方偏差的意義下擬合效果是最好的。這也很符合直覺,越接近$x$的樣本的權重本應該越高,並且超出帶寬的樣本權重直接爲0也是符合常理的,它融合了均勻核與高斯核的優勢。
對於多維狀況,假設隨機變量$X$爲$m$維(即$m$維向量),則擬合機率密度是$m$維的聯合機率密度:
$\displaystyle \hat{f}(x)= \frac{1}{h^mN}\sum\limits_{i=1}^{N}\displaystyle K(\frac{x_i-x}{h})$
其中的$K(x)$也變成了$m$維的聯合機率密度。另外,既然$\displaystyle\frac{1}{N}\sum\limits_{i=1}^{N} K(\frac{x_i-x}{h})$表明的是機率,$m$維的機率密度天然是機率除以$h^m$而不是$h$。