核密度估计,或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$。