标签: random-sample

Shell脚本随机数生成

var=$RANDOM 创建随机数,但我如何指定例如0到12之间的范围?

random variables bash shell random-sample

7
推荐指数
3
解决办法
1万
查看次数

如何从联合,离散,概率分布函数中进行数值抽样

我有一个2D"热图"或PDF,我需要通过随机抽样重新创建.IE我有一个显示起始位置的二维概率密度图.我需要以与原始PDF相同的概率随机选择起始位置.

要做到这一点,我想我需要首先找到联合CDF(累积密度函数),然后选择随机统一数字来对CDF进行采样.这就是我被卡住的地方.

我如何在数字上找到我的PDF的联合CDF?我尝试沿两个维度进行累积求和,但这并没有产生正确的结果.我的统计知识让我失望.

编辑热图/ PDF是[x,y,z]的形式,其中Z是每个x,y点的强度或概率.

algorithm statistics probability random-sample

7
推荐指数
1
解决办法
5068
查看次数

迭代或惰性储层采样

我非常熟悉使用Reservoir Sampling在一次通过数据的过程中从一组未确定的长度中采样.在我看来,这种方法的一个限制是它仍然需要在返回任何结果之前传递整个数据集.从概念上讲,这是有道理的,因为必须允许整个序列中的项目有机会替换先前遇到的项目以获得统一的样本.

有没有办法在整个序列评估之前能够产生一些随机结果?我正在考虑那种适合python的伟大的itertools库的懒惰方法.也许这可以在一些给定的容错范围内完成?我很感激有关这个想法的任何反馈!

为了澄清这个问题,这个图总结了我对不同采样技术的内存与流媒体权衡的理解.我想要的是属于Stream Sampling的类别,我们事先并不知道人口的长度.

在此输入图像描述

显然,由于我们很可能将样本偏向人口的开头,因此不知道先验长度并且仍然得到统一样本存在看似矛盾.有没有办法量化这种偏见?是否需要权衡利弊?有没有人有一个聪明的算法来解决这个问题?

python algorithm random-sample

7
推荐指数
1
解决办法
447
查看次数

为什么random()*random()与random()**2不同?

是有区别random() * random()random() ** 2random()从均匀分布返回0到1之间的值.

当测试两个版本的随机平方数时,我注意到了一点点差异.我创建了100000个随机平方数,并计算每个区间中有多少个数为0.01(0.00到0.01,0.01到0.02,......).似乎这些平方随机数生成的版本是不同的.

平方随机数而不是乘以两个随机数您是否重复使用随机数,但我认为分布应该保持不变.真的有区别吗?如果没有,为什么我的测试显示出差异?


我生成了两个随机分箱分配random() * random(),其中一个分类为random() ** 2:

from random import random

lst = [0 for i in range(100)]
lst2, lst3 = list(lst), list(lst)

#create two random distributions for random() * random()
for i in range(100000):
    lst[int(100 * random() * random())] += 1

for i in range(100000):
    lst2[int(100 * random() * random())] += 1

for i in range(100000):
    lst3[int(100 * random() ** 2)] += 1
Run Code Online (Sandbox Code Playgroud)

这使 …

python random random-sample

7
推荐指数
2
解决办法
315
查看次数

随机选择范围内的k个不同数字

我需要k在范围内随机选择元素0 to n-1.n最高可达10 ^ 9.并且k可以从1 to n-1.我可以在O(n)时间内通过对包含值的数组进行混洗0 to n-1k从中选择第一个元素来完成此操作.但是当它k很小时,这种方法既有时间也有内存效率低下.这个问题有没有O(k)解决方案?

注意:所选k数字必须不同.

我在想一个解决方案.我能想到两种方法.设R是要返回的集合.

  1. 选择范围中的随机值并将其添加到R.继续这样做,直到|R| = k.此过程需要sum(n/i) for n+1-k <= i <= n时间和O(k)空间.
  2. 在数组中插入0到n-1,随机播放,从中获取第一个k元素.此过程需要O(n + k)时间和空间.

因此,对于给定的k我可以在O(k)时间中选择优选的方法.

java sorting random algorithm random-sample

7
推荐指数
1
解决办法
995
查看次数

将矢量随机分成两组

我有一个长度为100的向量t,并希望将其分为30和70值,但这些值应随机选择,无需替换.因此,30个值中没有一个被允许在70个值的子向量中,反之亦然.

我知道R函数sample可以用来随机选择带有和不带替换的向量的值.但是,即使我使用replace = FALSE,我必须sample使用30 运行该函数两次,并选择70个值运行一次.这意味着30个值中的一些可能在70个值中,反之亦然.

有任何想法吗?

random r sample random-sample

6
推荐指数
2
解决办法
7691
查看次数

SQL - 按组分组随机抽样5%

我有一个大约1000万行和4列的表,没有主键.第2列3 4(x2 x3和x4)中的数据按第1列X1中标识的50个组进行分组.

为了从表中获得5%的随机样本,我一直使用

SELECT TOP 5 PERCENT *
FROM thistable
ORDER BY NEWID()
Run Code Online (Sandbox Code Playgroud)

结果返回大约500,000行.但是,如果以这种方式采样,一些组在样本中得到不相等的表示(相对于它们的原始大小).

这次,为了获得更好的样本,我想从列X1中确定的50个组中的每个组中获得5%的样本.所以,最后,我可以得到X1中50个组中每个组中5%行的随机样本(而不是整个表的5%).

我该如何处理这个问题?谢谢.

t-sql random-sample newid

6
推荐指数
1
解决办法
4898
查看次数

Python中配对列表的随机样本

我有两个列表xy,长度为n,x iy i形成一对.如何在保留配对信息的同时从这两个列表中随机抽取m个值(例如x [10]和y [10]将在结果样本中一起)

我最初的想法是这样的.

  • 使用zip创建元组列表
  • 随机播放元组列表
  • 从列表中选择前m个元组
  • 将元组分解为新的配对列表

代码看起来像这样.

templist = list()
for tup in zip(x, y):
    templist.append(tup)
random.shuffle(templist)
x_sub = [a for a, b in templist[0:m]]
y_sub = [b for a, b in templist[0:m]]
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎很狡猾.有什么方法可以让我更清晰,更简洁,还是Pythonic?

python random-sample

6
推荐指数
1
解决办法
3834
查看次数

错误:random_sample()最多需要1个位置参数(给定2个)

我有random.sample函数的问题.这是代码:

import random
import numpy as np


simulateData = np.random.normal(30, 2, 10000)

meanValues = np.zeros(1000)

for i in range(1000):


    dRange = range(0, len(simulateData))
    randIndex = np.random.sample(dRange, 30)
    randIndex.sort()
    rand = [simulateData[j] for j in randIndex]
    meanValues[i] = rand.mean()
Run Code Online (Sandbox Code Playgroud)

这是错误:

TypeError                                 Traceback (most recent call last)
<ipython-input-368-92c8d9b7ecb0> in <module>()
 20 
 21     dRange = range(0, len(simulateData))
---> 22     randIndex = np.random.sample(dRange, 30)
 23     randIndex.sort()
 24     rand = [simulateData[i] for i in randIndex]

mtrand.pyx in mtrand.RandomState.random_sample   (numpy\random\mtrand\mtrand.c:10022)()

TypeError: random_sample() takes at most 1 …
Run Code Online (Sandbox Code Playgroud)

python random indexing numpy random-sample

6
推荐指数
2
解决办法
6650
查看次数

从数据表中,每组随机选择一行

我正在寻找一种从数据表中选择行的有效方法,这样我就可以为特定列中的每个唯一值设置一个代表性行.

我举一个简单的例子:

require(data.table)

y = c('a','b','c','d','e','f','g','h')
x = sample(2:10,8,replace = TRUE)
z = rep(y,x)
dt = as.data.table( z )
Run Code Online (Sandbox Code Playgroud)

我的目标是通过对列z中的每个字母ah采样一行来对数据表dt进行子集化.

r subset random-sample data.table

6
推荐指数
2
解决办法
1799
查看次数