标签: random-sample

Random.nextgaussian()可以从具有不同均值和标准差的分布中采样值吗?

这是一个综合的Java和基本数学问题.来自Random.nextGaussian()的文档声明它从正态分布中采样,均值为0,标准差为1.如果我想从具有不同均值和方差的正态分布中进行采样,该怎么办?

java statistics gaussian random-sample

19
推荐指数
1
解决办法
2万
查看次数

随机抽样数据框中的一定百分比的行

问题相关.

gender <- c("F", "M", "M", "F", "F", "M", "F", "F")
age    <- c(23, 25, 27, 29, 31, 33, 35, 37)
mydf <- data.frame(gender, age) 

mydf[ sample( which(mydf$gender=='F'), 3 ), ]
Run Code Online (Sandbox Code Playgroud)

不是选择多行(上面的情况是3),如何用"F"随机选择20%的行?那么在带有"F"的五行中,如何随机抽样20%的这些行.

row r subset random-sample

16
推荐指数
2
解决办法
2万
查看次数

生成分布在单位球体表面上的点的随机样本

我试图使用numpy在球体表面上生成随机点.我已阅读,解释均匀分布后在这里.但是,需要关于如何仅在球体表面上生成点的想法.我有坐标(x,y,z)和每个球体的半径.

我不是很熟悉这个级别的数学,而是试图理解蒙特卡罗模拟.

任何帮助都感激不尽.

谢谢,帕林

python geometry numpy random-sample uniform-distribution

16
推荐指数
2
解决办法
2万
查看次数

R-如何生成离散随机变量的随机样本?

在R中,我想生成离散随机变量的随机样本:X,其中:P(X=a)=P(X=-a)=1/2.我一直在网上搜索功能,但似乎没有直接的功能这样做.

r binary-data random-sample

15
推荐指数
2
解决办法
3万
查看次数

设置种子时整数是什么意思?

我想使用R中sample()函数从我的数据集中随机选择n行.我每次都得到不同的输出,因此使用函数来获得相同的输出.我知道,will 中的每个整数都会给我一个唯一的输出,如果设置相同的种子,输出将是相同的.但我无法弄清楚作为参数传递给函数的整数意味着什么.它只是一个进入随机生成器算法的索引,还是指从您开始采样的数据的某些部分?例如,什么是在是什么意思?set.seed()set.seed()set.seed()2set.seed(2)

random r random-sample seeding

13
推荐指数
3
解决办法
2万
查看次数

使函数设置随机种子独立

有时我想编写一个随机函数,它总是返回特定输入的相同输出.我总是通过在函数顶部设置随机种子然后继续实现它.考虑以这种方式定义的两个函数:

sample.12 <- function(size) {
  set.seed(144)
  sample(1:2, size, replace=TRUE)
}
rand.prod <- function(x) {
  set.seed(144)
  runif(length(x)) * x
}
Run Code Online (Sandbox Code Playgroud)

sample.12返回从集合中随机取样的指定大小的矢量{1, 2}rand.prod由从均匀地选择的随机值相乘指定向量的每个元素[0, 1].通常情况下,我希望x <- sample.12(10000) ; rand.prod(x)有一个"步骤"分布,范围内的pdf 3/4和范围内的[0, 1]1/4 [1, 2],但由于我不幸选择上面相同的随机种子,我看到了不同的结果:

x <- sample.12(10000)
hist(rand.prod(x))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在这种情况下,我可以通过将其中一个函数中的随机种子更改为其他值来解决此问题.例如,set.seed(10000)rand.prod我得到预期的分布:

在此输入图像描述

以前在SO上,这种使用不同种子的解决方案已被接受为生成独立随机数流的最佳方法.然而,我发现解决方案不令人满意,因为具有不同种子的流可能彼此相关(可能甚至彼此高度相关); 事实上,根据以下情况,它们甚至可能产生相同的流?set.seed:

不能保证种子的不同值会以不同的方式为RNG播种,尽管任何例外都是非常罕见的.

有没有办法在R中实现一对随机函数:

  1. 始终为特定输入返回相同的输出,并且
  2. 通过使用不同的随机种子,增强其随机性来源之间的独立性?

random r random-sample random-seed

13
推荐指数
1
解决办法
715
查看次数

随机矩阵的所有行的快速随机加权选择

numpy.random.choice 允许从矢量加权选择,即

arr = numpy.array([1, 2, 3])
weights = numpy.array([0.2, 0.5, 0.3])
choice = numpy.random.choice(arr, p=weights) 
Run Code Online (Sandbox Code Playgroud)

选择1概率为0.2,2选择概率为0.5,3选择概率为0.3.

如果我们想以矢量化的方式快速完成2D阵列(矩阵),每个行都是概率矢量,该怎么办?也就是说,我们想要一个随机矩阵的选择向量?这是超级慢的方式:

import numpy as np

m = 10
n = 100 # Or some very large number

items = np.arange(m)
prob_weights = np.random.rand(m, n)
prob_matrix = prob_weights / prob_weights.sum(axis=0, keepdims=True)

choices = np.zeros((n,))
# This is slow, because of the loop in Python
for i in range(n):
    choices[i] = np.random.choice(items, p=prob_matrix[:,i])
Run Code Online (Sandbox Code Playgroud)

print(choices):

array([ 4.,  7.,  8.,  1.,  0.,  4.,  3.,  7.,  1., …
Run Code Online (Sandbox Code Playgroud)

python numpy matrix vectorization random-sample

12
推荐指数
1
解决办法
1528
查看次数

Julia:生成唯一的随机整数数组

我正在尝试创建10个独特随机整数的元素数组.但是我无法创建具有唯一值的数组.朱莉娅有像Pythons 样本函数吗?

numbers = zeros(Array(Int64, 10))
rand!(1:100, numbers)
Run Code Online (Sandbox Code Playgroud)

谢谢.

random integer random-sample julia

12
推荐指数
2
解决办法
2675
查看次数

在Ruby中为Regex模式生成字符串

在Python语言中,我发现rstr可以为正则表达式模式生成一个字符串.

或者在Python中我们有这个方法可以返回字符串的范围:

re.sre_parse.parse(pattern)
#..... ('range', (97, 122)) ....
Run Code Online (Sandbox Code Playgroud)

但在Ruby中我没有找到任何东西.

那么如何在Ruby(反向正则表达式)中为正则表达式模式生成字符串?

我想要这样的事情:

"/[a-z0-9]+/".example
#tvvd
"/[a-z0-9]+/".example
#yt
"/[a-z0-9]+/".example
#bgdf6
"/[a-z0-9]+/".example
#564fb
Run Code Online (Sandbox Code Playgroud)

"/ [a-z0-9] + /"是我的输入.输出必须是我的正则表达式模式中可用的正确字符串.这里的输出是:tvvd,yt,bgdf6,564fb, "example"方法生成它们.我需要那种方法.

谢谢你的建议.

ruby regex string random-sample

11
推荐指数
3
解决办法
5648
查看次数

在R中生成随机的整数而不替换

我想绘制随机整数对而无需替换(另一种方式我不想要任何重复对).这个概念听起来很简单,但我想不出一个快速而简单的解决方案.

想象一下,例如,我想使用整数序列生成随机的整数对,1:4以填充该对的元素.还假设我想生成5个随机对而无需替换.然后我希望能够生成这样的东西......

     [,1] [,2]
[1,]    1    2
[2,]    2    1
[3,]    3    3
[4,]    1    4
[5,]    4    3
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,没有重复对(即行).但是,在上述矩阵的每列中存在重复的整数.因此,使用sample()单独生成每列的随机数将不起作用.

对我的上下文不起作用的另一个看似可能的解决方案是生成包含重复项的多对,然后追溯删除这些重复项.我不能这样做,因为我需要生成特定数量的对.

我正在寻找这个问题的有效解决方案.这似乎是一个简单的问题,它必须有一个简单的解决方案(即请不要嵌套for循环)

这是我丑陋的方法:

#This matrix maps a unique id i.e. (1:16) to a pair (i.e. the row & col of the matrix)
r.mat<-matrix(1:(4*4),4,4) 
#Drawing a random id
r.id<-sample(r.mat,5,replace=FALSE)
#Mapping the random id to a random pair
r.pair<-t(sapply(r.id, function (x) which(r.mat==x,arr.ind=TRUE)))
Run Code Online (Sandbox Code Playgroud)

这对我的玩具示例很好,但是当我想从序列1:10000000中绘制大量对时,它并不是那么好.

r random-sample

10
推荐指数
1
解决办法
3757
查看次数