拟合连续分布采样数据的“模式”的最佳方法是什么?
由于该模式在技术上是不确定的(对吗?),以便进行连续分配,所以我真的在问“您如何找到最普遍的价值”?
如果您假设父分布是高斯分布,则可以对数据进行分箱,然后发现模式是计数最大的分箱位置。但是,如何确定垃圾箱大小?有健壮的实施方案可用吗?(即对异常值具有鲁棒性)。我使用python
/ scipy
/ numpy
,但我可以轻松进行翻译R
。
拟合连续分布采样数据的“模式”的最佳方法是什么?
由于该模式在技术上是不确定的(对吗?),以便进行连续分配,所以我真的在问“您如何找到最普遍的价值”?
如果您假设父分布是高斯分布,则可以对数据进行分箱,然后发现模式是计数最大的分箱位置。但是,如何确定垃圾箱大小?有健壮的实施方案可用吗?(即对异常值具有鲁棒性)。我使用python
/ scipy
/ numpy
,但我可以轻松进行翻译R
。
Answers:
在R中,应用不基于基础分布的参数化建模的方法,并使用默认的内核估计器对10000 gamma分布变量进行密度计算:
x <- rgamma(10000, 2, 5)
z <- density(x)
plot(z) # always good to check visually
z$x[z$y==max(z$y)]
返回0.199,这是估计具有最高密度的x的值(密度估计存储为“ z $ y”)。
以下是一些一般的解决方案草图,它们也适用于高维分布:
训练具有反向KL散度的f-GAN,而无需向生成器提供任何随机输入(即,强制其具有确定性)。
训练具有反向KL发散的f-GAN,随着训练的进行,将输入分布向发电机的输出移向Dirac delta函数,并为发电机损失函数增加梯度损失。
训练一个(可微分的)生成模型,该模型可以随时随地评估pdf的近似值(我相信例如VAE,基于流的模型或自回归模型都可以)。然后使用某种类型的优化(如果模型推论是可区分的,则可以使用某种梯度上升的味道)来找到该近似值的最大值。