正态分布随机数的产生

最近平凡听到关于正态分布采样相关的内容,突然想到一个问题:
到底如何利用正态分布采样?
正好近期模式识别课程上也有一个相关的内容,整理了一下查到的资料。

一。柱状图估计分布
假设样本 x N(u,θ) , 其pdf图如下:
设想一下如果我们并不是很清楚正态分布的mean和var,只有一些训练的数据样本,该如何估计样本分布的参数?
这里写图片描述
【图片来自南京大学吴建鑫老师的讲义】
上图中的bin就是把数据划分区间,然后统计每个区间点的个数,然后根据走势画出的分布图,当然上图主要是解释区间太密集导致的过拟合现象,不是这里讨论的重点。
但是从这个图可以思考一些问题,比如所谓数据服从正态分布是什么意思?图表示的是概率,其实也就是说点落在均值附近的概率比较大。

二。正态分布随机数的产生
有一篇博客写的蛮清楚的:http://cos.name/2015/06/generating-normal-distr-variates/
解释了Python中rand函数的实现,产生正态分布的过程就是:

# When x and y are two variables from [0, 1), uniformly
# distributed, then
#
#    cos(2*pi*x)*sqrt(-2*log(1-y))
#    sin(2*pi*x)*sqrt(-2*log(1-y))
#
# are two *independent* variables with normal distribution

就是Box-Muller算法。相关的还有Rejection Sampling,其实这个用到的比较多。

猜你喜欢

转载自blog.csdn.net/u011415481/article/details/71747589