美文网首页
2019-03-28

2019-03-28

作者: hannah1123 | 来源:发表于2019-03-28 16:33 被阅读0次

对于简单函数的分布,如均匀分布,高斯分布等,很多编程语言有直接的采样函数;

复杂的分布,往往没有直接的采样函数可供调用,需要其他更加复杂的采样的方法;

1    采样的作用:

       a  采样的本质是对随机现象的模拟。根据给定的概率分布,来模拟产生一个对应的随机事件。

采样可以让人们对随机事件的及其产生过程有更直观地认识。

      b  采样得到的是样本集可以看作是一种非参数模型,即用较少量的样本点(经验分布)来近似总体分布,并刻画总体分布中的不确定性。从这个角度来说,采样其实也是一种信息降维,可以起到简化问题的作用。使得采样在数据可视化方面也有很多应用,它可以帮助人们快速,直观地了解总体分布中数据的结构和特性。

c   对当前的数据集进行重采样,可以充分利用已有的数据集,挖掘更多信息,通过对样本的多次重采样来估计统计量的偏差,方差等。

d  利用重采样技术,可以保持特定的信息下,有意识地改变样本的分布,以更适应后续的模型训练和学习,例如利用重采样来处理分类模型的训练样本不均衡问题。

E  利用重采样方法进行随机模拟,从而对这些复杂模型进行近似求解或推理,这一般会转化为某些函数在给定分布下的积分或者期望。或者是求某些随机变量或参数在给定数据下的后验分布。

2  如何编程实现均匀分布随机数生成器?

明确:

{  a  首先 要明确的是,计算机程序都是确定性的,因此并不能产生真正意义上的完全均匀分布随机数,只能产生伪随机数(伪随机数是指这些数字虽然是通过确定性的程序产生的,但是他们能通过近似的随机性测试)

b  由于计算机的存储和计算单元只能处理离散 状态值,因此也不能产生连续均匀分布随机数,只能通过离散分布来逼近连续分布(用很大的离散空间来提供足够的精度)}

线性同余法

采用线性同余法来生成离散均匀分布伪随机数: 根据当前生成的随机数xt来进行适当变换,进而产生下一次的随机数xt+1

缺点:  产生的随机数不是相互独立的,该算法最多只能产生m个不同的随机数,实际上对于特定的种子,很多数无法取到。

3  常见的采样方法

根据概率密度函数提供的概率分布信息来生成随机变量的一个取值,这就是采样。ji

几乎所有的采样方法都是以均匀 分布随机数作为基本操作,均匀分布随机数一般用线性同余法来产生,

然而,很多分布一般不好直接进行采样,可以考虑函数变换法,

如果待采样的目标分布的累积分布函数的逆函数无法求解或者不容易计算则不适合用于逆变换采样法,可以使用  拒绝采样,重要性采样,马尔科夫蒙特卡洛采样(Metropolis-Hastings采样法和吉布斯采样)

4  高斯分布的采样

  任意高斯分布都可以有标准正态分布通过拉伸和平移得到。

5  马尔科夫蒙特卡洛采样(MCMC)

基本思想是: 针对采样的目标分布,构造一个马尔科夫链,使得该马尔科夫链的平稳分布就是目标分布,然后从任何一个初始状态出发,沿着马尔科夫链进行状态转移,,最终得到的状态转移序列会收敛到目标分布,由此可以得到目标分布的一系列样本。(核心点是如何构造合适的马尔科夫链,即确定马尔科夫链的状态转移概率)

MCMC 核心是 构造合适的马尔科夫链,不同的马尔科夫链对应着不同的MCMC采样法,常见的有Metroplis-Hastings 采样法,和吉布斯采样法。

MCMC 采样法如何得到相互独立的样本?

可以同时运行多条马尔科夫链,这样不同链上的样本是独立的,或者在同一条马尔科夫链上每隔若干个样本才选取一个,这样选取出来的样本也是近似独立的。

6  贝叶斯网络的采样方法:

祖先采样,核心思想是根据有向图的顺序,先对祖先节点进行采样,只有当某个节点的所有父节点都已完成采样,才对该节点进行采样。

逻辑采样: 利用祖先采样得到所有变量的取值,如果这个样本在观测变量上的采样值与实际观测值相同,则接受,否则拒绝,重新采样。缺点: 采样效率可能非常低,随着观测变量个数的增加,每个变量状态数目的上升,逻辑采样法的采样效率急剧下降。

似然加权采样

7  不均衡样本的重采样

   基于数据的方法

通常在采样时并不是简单的复制样本,而是采用一些方法生成新的样本,如SMOTE算法

基于算法的方法  

当样本不均衡时,可以通过改变模型的训练时的目标函数(如代价敏感学习中不同类别有不同的权重)来矫正这种不平衡性,

相关文章

网友评论

      本文标题:2019-03-28

      本文链接:https://www.haomeiwen.com/subject/fubqbqtx.html