前言
对于一般的正态分布,μ=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的范围)
这里引用另外的一篇文章,可以详见其公式:
https://blog.csdn.net/lanchunhui/article/details/61623189
二、如何截断生成想要的范围的正态分布
1.说明本人想要截断范围的正态分布的意图
想要去拟合数据,根据观察原始数据分布在1的左右,在使用GAN生成数据的时候发现拟合不到,那么猜想可能是我生成虚假数据的时候范围有问题,所以想要限制范围的正态分布
2.奉上代码,并且简要的介绍
俩种方法 1.自己定义函数实现,在函数里面调用python中的
from scipy.stats import truncnorm 2.直接调用truncnorm,给明参数,参数的解读之后奉上
参考链接:
https://blog.csdn.net/CSDNBigBoy/article/details/97034126
https://blog.csdn.net/qq_31239371/article/details/109367801
import numpy as np
import matplotlib.pyplot as plt
from math import sqrt
from scipy.stats import truncnorm
truncnorm(a=1., b=1.5, scale=0.95).rvs(size=[1000,576])
plt.hist(np.random.normal(0,1,size = 1000),bins=100)