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


前言

对于一般的正态分布,μ=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)

在这里插入图片描述

补充:

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值