2

你能帮我解答这些问题吗?我正在使用 Python

抽样方法

抽样(或蒙特卡罗)方法形成了一组通用且有用的技术,这些技术使用随机数来提取有关(多变量)分布和函数的信息。在统计机器学习的背景下,我们最关心的是从分布中抽取样本以获得汇总统计的估计,例如所讨论的分布的平均值。

当我们可以访问单位间隔(Matlab 中的 rand 或 R 中的 runif)上的统一(伪)随机数生成器时,我们可以使用 Bishop Sec.1 中描述的变换采样方法。11.1.1 从更复杂的分布中抽取样本。实现指数分布的变换方法

$$p(y) = \lambda \exp(−\lambda y) , y \geq 0$$

使用 Bishop 中第 526 页底部给出的表达式:切片采样涉及用附加变量 u 增加 z,然后从联合 (z,u) 空间中抽取样本

抽样方法的关键是需要多少样本才能获得对感兴趣数量的可靠估计。假设我们对估计均值感兴趣,即

$$\mu_y = 1/\lambda$$

在上述分布中,我们然后使用样本均值

$$b_y = \frac1L \sum^L_{\ell=1} y(\ell)$$

的 L 个样本作为我们的估计量。由于我们可以根据需要生成任意数量的大小为 L 的样本,因此我们可以研究该估计值如何平均收敛到真实均值。为了正确地做到这一点,我们需要采取绝对差异

$$|\mu_y - b_y|$$

在真实平均值 $µ_y$ 和估计 $b_y$ 之间,对多个 $L$ 值(例如 10、100、1000)的多次重复(例如 1000 次)进行平均。将预期绝对偏差绘制为 $L$ 的函数。您可以绘制一些预期绝对偏差的转换值以获得或多或少的直线,这是什么意思?

我是这种统计机器学习的新手,真的不知道如何在 Python 中实现它。你能帮我吗?

4

1 回答 1

1

您可以采取一些捷径。Python 有一些内置的采样方法,主要在Scipy库中。我可以推荐一份在 Python 中实现这个想法的手稿(免责声明:我是作者),位于此处

它是一本更大的书的一部分,但这个孤立的章节涉及更一般的大数定律+收敛,这就是你所描述的。本文处理泊松随机变量,但您应该能够根据自己的情况调整代码。

于 2013-02-19T13:40:37.120 回答