2

我有由大小为 1x5 的向量组成的数据,每个向量代表一个 pikel: [x,y,r,g,b]x并且y是 position: 0 <= x <= M, 0 <= y <= Nr,g,b是像素的颜色:0 <= r,g,b <= 255.

我想使用多元 Epanechnikov 核来估计密度估计。我读到有两种方法可以做到这一点:

  1. 乘法方法 - 计算每个维度的内核,然后将它们相乘。
  2. 计算向量的范数并计算该值的核。

这两种方法究竟如何处理我的数据?知道 Epanechnikov 内核为归一化值> 1< -1.

我正在用 C++ 编程。

4

1 回答 1

2
  1. 乘法方法 - 计算每个维度的内核,然后将它们相乘。
  2. 计算向量的范数并计算该值的核。
  1. 假设您的 x 变量和 y 在统计上是独立的,这不适用于 2。另一方面,2. 是径向对称内核。

这两种方法究竟如何处理我的数据?

我会尝试两者,看看哪一个给出更好的结果(例如,哪个给出更好的数据可能性,但注意不要过度拟合数据,例如通过使用交叉验证)。

在其最基本的形式中,这意味着您拆分样本,使用一部分计算密度估计函数(即在数据点周围放置内核)并评估另一部分的可能性(密度估计函数值的乘积)用于测试或更好的概率乘积对数的点)并查看哪一个在“其他”样本(不用于计算估计值的那个)上给出了更高的概率乘积。

相同的论点(交叉验证)也适用于内核宽度的选择(“缩放因子”,使内核变窄或变宽)。

您当然可以从手动选择内核宽度开始。选择太小的内核宽度会给出“尖峰”密度估计,选择太大会“洗掉”数据的重要特征。

知道 Epanechnikov 内核对于标准化值 > 1 或 < -1 产生 0,我需要进行什么标准化。

您提到的功能与规范化无关。您应该对内核本身使用规范化表达式,即内核非零范围内的积分应该是一。对于您的情况 1.,如果 1D 内核被归一化(例如3/4*(1-u^2)on的情况[-1..1],2D 产品也将被归一化。对于情况 2。必须计算 2D 积分。

假设内核被归一化,您可以按如下方式对密度估计进行归一化:

归一化公式

其中 N 是数据点的数量。这将被归一化,即p(x,y)2D 平面上的积分为 1。


请注意,您提到的任何一种函数形式都不允许使用任意协方差矩阵。解决此问题的一种方法是首先“去相关”数据集(即应用矩阵变换,使数据集的协方差矩阵成为单位矩阵),然后执行密度估计,然后应用逆变换。

还有一些扩展,例如自适应内核密度估计,其中内核的宽度作为函数而变化xy如果在某些时候你想改进你的估计等。

于 2013-06-19T11:30:23.590 回答