当前位置: 首页 > 知识库问答 >
问题:

快速任意分布随机抽样(逆变换抽样)

申屠宗清
2023-03-14
def my_dist(x):
    # Some distribution, assume c1,c2,c3 and c4 are known.
    f = c1*exp(-((x-c2)**c3)/c4)
    return f

# Draw N random samples from my distribution between given limits a,b.
N = 1000
N_rand_samples = ran_func_sample(my_dist, a, b, N)

其中ran_func_sample是我想要的,而a、b是绘制示例的限制。在Python中有类似的内容吗?

共有1个答案

姜经武
2023-03-14

你需要使用逆变换抽样方法来得到按照你想要的一个规律分布的随机值。用这种方法,只需对[0,1]区间内具有标准均匀分布的随机数应用逆函数即可。

在找到反向函数之后,你会得到1000个按照所需分布的数字,这种明显的方式是:

[inverted_function(random.random()) for x in range(1000)]

更多关于逆变换采样的信息:

    null
    null
 类似资料:
  • 问题内容: 该模块(http://docs.python.org/2/library/random.html)具有几个 固定 功能,可以从中随机采样。例如,将从具有给定均值和sigma值的正态分布中采样随机点。 我正在寻找一种方法,该方法可以使用自己的分布 尽可能快地 在给定间隔内提取一定数量的随机样本。这就是我的意思: 这里是我后和是从中可以得出样本的限制。有这样的东西吗? 问题答案: 您需要使

  • 问题内容: 我有一个大于1000万行的巨大表。我需要从中有效地获取5000个随机样本。我有一些限制因素,使我想要的总行数减少到9密耳。 我尝试通过NEWID()使用order,但是该查询将花费很长时间,因为它必须对所有行进行表扫描。 有没有更快的方法可以做到这一点? 问题答案: 如果您可以使用伪随机抽样并且您使用的是SQL Server 2005/2008,则请看一下TABLESAMPLE。例如,

  • 问题内容: 我需要从ElasticSearch指数获得了随机抽样,即发出查询检索从加权概率定索引一些文档(这里是行的权重,并在此查询所有文件的权重的总和)。 当前,我有以下查询: 它从选定类别中随机返回5个项目。每个项目都有一个字段。所以,我可能必须使用 作为描述在这里。 我有以下问题: 正确的方法是什么? 我需要启用动态脚本吗? 如何计算查询的总和? 非常感谢你的帮助! 问题答案: 万一它对任何

  • 本文向大家介绍随机抽取的sql语句 每班任意抽取3名学生,包括了随机抽取的sql语句 每班任意抽取3名学生的使用技巧和注意事项,需要的朋友参考一下 学校有一、二、三。。。。至十班。 假设每个班上有30名学生。张、李、刘、苏等 现有这样的表 student ,字段 class 及name 。其中class 表示班级,name 表示每班学生姓名。 要求每班任意抽取3名学生出来,进行学校大扫除。 请写出

  • 本文向大家介绍python Pandas如何对数据集随机抽样,包括了python Pandas如何对数据集随机抽样的使用技巧和注意事项,需要的朋友参考一下 摘要:有时候我们只需要数据集中的一部分,并不需要全部的数据。这个时候我们就要对数据集进行随机的抽样。pandas中自带有抽样的方法。 应用场景: 我有10W行数据,每一行都11列的属性。 现在,我们只需要随机抽取其中的2W行。 实现方法很简单:

  • 根据RandomizedSearchCV文件(重点是mine): param_distributions:字典或字典列表 使用参数名称 (str) 作为键的字典,以及要尝试的分布或参数列表。分布必须提供 rvs 方法进行采样(例如来自 scipy.stats.分布的方法)。如果给出了一个列表,则对其进行统一采样。如果给出了字典列表,则首先对字典进行统一采样,然后如上所述使用该字典对参数进行采样。