核密度估计(KDE) 相关知识

这周忙着写论文,技术实践这边就怠慢了,都是些修修补补的工作。比较有意思的就是接触到数据分析中的核密度估计方法。现将相关知识总结如下。(12/23添加密度估计相关知识)


预备:密度估计相关知识

密度估计经常在统计学中作为一种基于有限的样本来估计其概率密度函数的方法。

在研究随机变量的过程中,随机变量的概率密度函数的作用是描述随机变量的特性。但是在实际应用中,总体概率密度函数通常是未知的,那么如何来估计总体概率密度呢?一般,我们通过抽样或者采集一定的样本,可以根据统计学知识从样本集合中推断总体概率密度。这种方法统称为概率密度估计,即根据训练样本来确定随机变量的概率分布。一般概率密度估计方法方法大致分为两类:参数估计和非参数估计。

参数估计(Parametric Estimation)是根据对问题的经验知识,假设问题具有某种数学模型,随机变量服从某种分布,即假定概率密度函数的形式,然后通过训练数据估计出分布函数的参数。常见的参数估计方法有最大似然方法和贝叶斯方法。对于参数估计,根据样本中是否已知样本所述类别将参数估计又划分为监督参数估计和非监督参数估计。监督参数估计是由已知类别的样本集对总体分布的某些参数进行统计推断。而无监督参数估计已知总体概率密度函数形式但未知样本所属的类别,要求推断出概率密度函数的某些参数,这种推断方法称之为非监督情况下的参数估计。

非参数估计(Nonparametric Estimation)则是在已知样本所属的类别不假定总体分布形式下, 基于大样本的性质,直接利用样本估计出整个函数。在很多情况下,我们对样本的分布并没有充分的了解,无法事先给出密度函数的形式,而且有些样本分布的情况也很难用简单的函数来描述。在这种情况下,就需要用到非参数估计。但是,并不是非参数估计一定优于参数估计,因为非参数估计受训练样本影响,其完备性或者说是泛化能力不会很好;且这种估计只能用数值方法取得,无法得到完美的封闭函数图形。常用的非参数估计方法有直方图法,核概率密度估计等。

下图是《数据之魅》中的一维数据的直方图和核密度估计的对比图,虚线框为直方图,两个实曲线描述的就是通过KDE估计的结果。

直方图不能很优雅地处理一些异常点。某个远离大部分点的异常点会造成图形中间的空白,或者迫使我们使用对大多数点来说过宽的矩形组。这些异常点可能会使我们很难依赖自动方式来确定一个合适的矩形宽度。幸运的是,还有另一种经典的直方图可供选择,它不存在上述的各种问题。它就是核密度估计(Kernel Density Estimate,KDE)。

核密度的方法就是借助一个移动的单元格(核函数)放在每一个数据点的位置上。然后将核函数的作用效果叠加起来,获得一条光滑的曲线。而核函数的选择条件为单个峰值下的函数面积为1

数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。

数据的归一化处理,即将数据统一映射到[0,1]区间上。

常用的核函数有:

  • Box核函数: \( K(x) = \begin{aligned} \begin{cases} \frac{1}{2} & if |x| \leq 1 \\ 0 & other \end{cases} \end{aligned} \)
  • Epanechnikov核函数: \( K(x) = \begin{aligned} \begin{cases} \frac{3}{4}(1-x^2) & if |x| \leq 1 \\ 0 & other \end{cases} \end{aligned} \)
  • Gaussian核函数: \( K(x) = \frac{1}{\sqrt{2\pi}}\exp( -\frac{1}{2}x^2 ) \)

在单一维度x上的KDE公式为: \( D_h(x, x_i) = \sum\limits_{i=1}^{n} \frac{1}{h}K(\frac{x-x_i}{h}) \)。 h为带宽,控制函数的蔓延

如果你正使用KDE 来生成图以使点分布直观可视,最好手动尝试并肉眼观察误差。最后,值得一提的是,并没有所谓的"正确"答案,只有最适合某个目的的答案。为了获得直观的理解,最佳方案也许并不是最小化一个特定的数学方面的量。

多元核密度估计

核密度估计方法在二十世纪的五六十年代第一次应用于单变量时被学界所知,针对多元数据的估计在90年代后才成熟。下图就是一个简单的应用核密度估计的过程。在左图,通过公式计算以每个点为中心的核,这些核的求和结果展示为右图的密度估计结果。

这样将Dx 扩展到多元变量上为多变量的公式为 ( \hat{f}{i}(x) = \sum\limits{i=1}^{m} K{h}(x-x{i}^{j}) )中的( x_{i}^{j} )。这在论文报告中提及过。

验证密度估计的结果的方法主要有两种:the plug-in method and the method of cross-validation。这里不做涉及。

将其应用到地理上是下个星期的工作。


  1. KDE@wiki

  2. 核密度估计@51cto