我是靠谱客的博主 外向月亮,最近开发中收集的这篇文章主要介绍生成某一概率分布的数据,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

简单的举例:

下图是高斯分布的概率密度函数曲线
在这里插入图片描述
可以见到中间的任意小区间的概率大于两边的小区间的概率。

要生成这个概率密度函数f(x)的数据,首先将区间分解成很多小区间,如分解为100个区间。
然后同样概率随机的选一个小区间,这个小区间的概率用f(x)的积分来算。
接下来取一个均值分布0-1随机一个数。若这个数大于小区间的概率,那么就把这个数据留下来。否则就不留。
不断的重复就可以得到符合这个分布的X。

原理

以相同的概率选取X的值或X一个邻域。
因为选了一个邻域后,这个邻域有概率值,表示X取这个区间内的值的概率Pi。因此再选一个均匀分布Y,随机一个数,若这个数大于Pi,那么Pi这个点就通过了。
这样的话概率密度大的区间最后得到的点就会多,而概率密度小的点或区间得到的点就会少。

依照以上的原理可以得到公式:
在这里插入图片描述
Fx(x)是已知概率分布函数。任取一个x的值,若FX(x)的值大于一个均匀分布,那么就留下,这个思路和这个公式相符。假如这样取的话,这个分布就是目标分布。
又因为:
在这里插入图片描述
所以FX^-1(U)和X的分布一样。

参考

具体的数学分析可以看:
http://www3.eng.cam.ac.uk/~ss248/G12-M01/Week1/ITM.pdf

最后

以上就是外向月亮为你收集整理的生成某一概率分布的数据的全部内容,希望文章能够帮你解决生成某一概率分布的数据所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部