采样方法

时间:2013-02-19 09:08:50

标签: python sampling

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

抽样方法

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

当我们在单位间隔(Matlab中的rand或R中的runif)上访问统一(伪)随机数生成器时,我们可以使用Bishop Sec中描述的变换抽样方法。 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 $之间 平均超过许多,比如1000,重复几个价值$ L $,比如10,100,1000。 将预期绝对偏差绘制为$ L $的函数。 你能否绘制一些预期绝对偏差的变换值来获得或多或少的直线,这是什么意思?

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

1 个答案:

答案 0 :(得分:1)

您可以使用一些快捷方式。 Python有一些内置的方法可以进行采样,主要是在Scipy库中。我可以推荐一个用Python实现这个想法的手稿(免责声明:我是作者),位于here

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