失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 截断正态分布的随机数生成方法

截断正态分布的随机数生成方法

时间:2024-04-12 10:48:48

相关推荐

截断正态分布的随机数生成方法

文章目录

前言一、截断正态分布是什么?1.概率密度函数:(限制了a,b的范围) 二、如何截断生成想要的范围的正态分布1.说明本人想要截断范围的正态分布的意图2.奉上代码,并且简要的介绍 补充:

前言

对于一般的正态分布,μ=0,σ=1的分布在python中的代码:

plt.hist(np.random.normal(0,1,size = 1000),bins=100) hist是画图工具


一、截断正态分布是什么?

截断分布是指,限制变量x取值范围(scope)的一种分布。例如,限制x取值在0到50之间,即{0<x<50},正态分布是一种不截断的分布,那么进行截断之后的一些改变如下:

1.概率密度函数:(限制了a,b的范围)

这里引用另外的一篇文章,可以详见其公式:

/lanchunhui/article/details/61623189

二、如何截断生成想要的范围的正态分布

1.说明本人想要截断范围的正态分布的意图

想要去拟合数据,根据观察原始数据分布在1的左右,在使用GAN生成数据的时候发现拟合不到,那么猜想可能是我生成虚假数据的时候范围有问题,所以想要限制范围的正态分布

2.奉上代码,并且简要的介绍

俩种方法 1.自己定义函数实现,在函数里面调用python中的

from scipy.stats import truncnorm 2.直接调用truncnorm,给明参数,参数的解读之后奉上

参考链接:

/CSDNBigBoy/article/details/97034126

/qq_31239371/article/details/109367801

import numpy as npimport matplotlib.pyplot as pltfrom math import sqrtfrom scipy.stats import truncnormtruncnorm(a=1., b=1.5, scale=0.95).rvs(size=[1000,576])plt.hist(np.random.normal(0,1,size = 1000),bins=100)

补充:

如果觉得《截断正态分布的随机数生成方法》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。