2015年9月25日 星期五

[無母] Kernel Density Estimation

很久以前就看過這個方法,但都沒有仔細研究過。

有許多方法可以用來估計機率分配,以前課本上教的就是先假設一個機率分配(常常是Normal),然後用動差法(moment-method)或者是最大概似估計(most likelihood)把參數找到後帶入。

無母數的做法就比較不一樣,在操作的時候避免假設一個太硬性的框架,以期發現更多數據底層的結構,KDE (Kernel Density Estimation)就是其中之一。話說回來,其實Histogram就是一種無母數的機率分配估計方法,像是下圖:


其實就是在計算
$p_{x}=\frac{\#of \ x_{i}\ is\ in\ the\ same\ bin\ with x}{bin\ width}$

所使用的參數就是bin的寬度和起始值(如上圖就是0)。

KDE也是類似的概念,要回答的問題是,當某個$x$並未被觀察到的時候,究竟背後的機率是多少?KDE回答問題的方式,就是去看$x$相進的點出現的情形,如果出現的多,表示其實$x$出現的機率很高,只是剛好by chance沒有被觀察到而已,反之則$x$本身出現的機率就是低的。

所以,當$x$出現機率的估計值就是

$p(x)=\frac{1}{nh}\sum_{i}kernel\left (\frac{x-x_{i}}{h}  \right )$

$h$是所謂的帶寬,$kernel$一般而言是以零為中心對稱的函數,並且所有值域的積分必須是$1$,像是Gaussian function

$k(u)=\frac{1}{\sqrt{2\pi}}\exp(\frac{u^{2}}{2})$

以下是我用不同$h$就產生上圖(Hitogram)的資料做的擬和





可以看出$h$的選擇很重要,太大的帶寬會導致under-fitting,太小的則導致over-fitting。帶寬的選擇又是另外一個很大的題目了。

沒有留言:

張貼留言