文章目录
前言一、截断正态分布是什么?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)
补充:
如果觉得《截断正态分布的随机数生成方法》对你有帮助,请点赞、收藏,并留下你的观点哦!