问题标签 [random-sample]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 样本函数 R 不会产生均匀分布的样本
我正在创建一个调查。有 31 个可能的问题,我希望每个受访者回答 3 个子集。我希望它们以随机顺序进行管理。参与者不应两次回答相同的问题
我创建了一个包含参与者索引的表格矩阵,以及第一个、第二个和第三个问题的问题索引列。
使用下面的代码,索引 31 在我的示例中的代表性不足。
我认为我错误地使用了示例函数。我希望有人可以帮助我吗?
matlab - Matlab:带替换的随机样本
从数据集中替换随机样本的最佳方法是什么?我使用 316 * 34 作为我的数据集。我想将数据分成三个桶,但要替换。我是否应该使用 randperm,因为我需要确保索引完好无损,因为该索引可以方便地识别标签数据。我是 matlab 新手,我看到有几个随机样本方法,但它们看起来不像我正在寻找的那样,奇怪的是认为 matlab 中不存在类似的东西,但我做了以下操作:
我的问题是当我这样做时,row_idx = round(rand(1)*316)
有时我会得到零,这会导致两个问题
- 我应该怎么做才能避免zeor?
用替换进行随机样本的最佳方法是什么。
/li>
我可以做到以下几点:
假设随机数不会在连续两轮中给出两个零值。
python-3.x - Python未能找到所有重复项
这与随机抽样有关。我正在使用 random.sample(number,5) 从数字中包含的数字范围内返回随机数列表。我使用 while i < 100 返回一百组五个数字。要检查重复项,我正在使用:
识别具有重复项的集合,然后使用 random.sample(number,5) 尝试进行另一次随机化以将集合替换为重复项。我似乎得到了大约 8% 的重新随机分配(使用打印语句来说明哪个数字被重复),但似乎遗漏了大约 5%。我做错了什么?实际代码如下:
在另一个例程中,我尝试执行与上述相同的操作,但通过添加相同的集合来搜索两组中的重复项,并将 set2 替换为 set1。这给出了相同类型的故障。set2 例程缩进并放置在上述例程的正下方。而 i < 100: 对于 set2 不重复。我希望我已经清楚地解释了我的问题!
google-maps - 特定邮政编码、县或地区内的随机真实美国地址
因此,对于学校的一个项目,我试图模拟学生住在我们镇上的地方,因为由于隐私问题显然无法获得官方数据。我开始寻找一个可以通过邮政编码、半径或县工作的生成器,但我找不到任何(商业或免费)我希望它是免费的,但我可能能够获得一些许可证资金. 如果我找到随机生成器,它们不能仅限于邮政编码或城市来随机生成真实地址。
我在这里找到了一个好主意:https ://stackoverflow.com/a/12289969/1778542
在此基础上,我会选择市中心的经纬度坐标,找出郊区坐标来创建一个平面,然后在平面内随机生成经纬度坐标,将它们反馈给谷歌,让谷歌为其近似地址。提出的一个问题(我尽量避免)是 Google 不使用经过验证的地址,而是使用近似值。
有没有人暗示在哪里可以找到这样的生成器或使用 GMaps 的更时尚的方式?
太感谢了!
全科医生
matlab - Matlab如何从数据集中选择随机样本
假设我有一个包含 10,000 行数据的数据集。创建包含 1,000 个随机选择的行的子集的最佳方法是什么?
algorithm - 查找之前是否出现过随机数
首先让我明确一点,这是一个人为的例子,而不是现实世界的问题。
如果我在创建 0 到 10 之间的随机数时遇到问题。我这样做 11 次以确保不会再次绘制先前出现的数字,如果我得到一个重复的数字,我会再次创建另一个随机数以确保它有不早见。所以基本上我得到一个从 0 到 10 以随机顺序排列的唯一数字序列,例如 3 1 2 0 5 9 4 8 10 6 7 等等
现在想出逻辑来确保随机数是唯一的,而不是我们之前绘制的,我们可以使用多种方法
使用 C++std::bitset
并将索引对应的位设置为每个随机数的值。下次抽到新的随机数时再检查。
或者
使用 astd::map<int,int>
来计算次数,甚至是简单的 C 数组,其中一些标记值存储在该数组中,以指示该数字是否发生。
如果我必须避免上述这些方法并使用一些数学/逻辑/按位运算来查找之前是否已绘制随机数,有没有办法?
matlab - 如何掌握 MATLAB 中的随机生成器以应用于引导人工神经网络模型
我正在处理水文时间序列数据,并且正在尝试构建 Bootstrap 人工神经网络模型。为了使用置信区间提供不确定性评估,必须确保在重新采样/引导原始时间序列数据集时,原始时间序列中的每个值在所有引导样本中至少保留两次,以便计算方差和那个时间点的置信区间。
提供一些背景:
我正在使用一个包含每月时间步长的标准降水指数值的水文时间序列,这个时间序列跨越 429(行)x 1(列),我们称之为时间序列向量X
。的所有元素/值在X
和 之间进行标准化和0
标准化1
。
X
然后针对神经网络中的一些目标值(与 相同的长度和条件)训练时间序列X
,以生成对目标值的新估计,我们称之为输出向量O
(与 相同的长度和条件X
)。
我现在要对其进行X
重新采样ii =1:1:200
(即 Bootstrap size = 200
)以替换长度(429)。让我们将放置所有引导样本的矩阵称为M
。我使用B = randsample(X, length(X), true)
并使用 for 循环进行填充M
,这样M(:,ii) = B
. 注意:我还确保rng('shuffle')
在我的randsample
声明之后加入,以保持 RNG 移动到新状态,希望它能提供更多随机结果。
现在我要测试我的数据被重新采样以用于创建置信区间的“好坏”程度。
我的程序如下:
- 使用上述过程生成一个 for 循环以创建 M
- 创建一个新变量
Xc
,这将保存所有X
未在引导示例中重新采样的值ii for ii = 1:1:200
For j=1:1:length(X) fill 'Xc' using the Xc(j,ii) = setdiff(X, M(:,ii))
,如果元素j
存在,则用M(:,ii)
填充。Xc(j,ii)
NaN
Xc
现在是一个与 大小和维度相同的矩阵M
。计算NaN
每行中值的数量Xc
并将其放入 vector 中CI
。- 如果 中的任何行
CI
是> [Bootstrap sample size, for this case (200) - 1]
,则此时无法创建置信区间。
当我运行它时,我发现从我的集合 X 中选择的值几乎总是重复的,即相同的值X
用于生成 中的所有样本M
。它与我的原始时间序列中的大约 200 个数据点大致相同,这些数据点总是被选择来创建新的引导样本。
我怎样才能有效地改变我的程序或使用任何特定的功能来避免(5)中的负面解决方案?
这是我的代码示例,但请记住,脚本中使用的变量可能与我在此处的文本不同。
感谢您的帮助,请参阅下面的代码。
r - 从截断的正态分布中高效生成随机数
我想从平均值 = 0 和 sd -1 的正态分布中抽取 50,000 个值。但我想将值限制为 [-3,3]。我已经编写了代码来执行此操作,但不确定它是否最有效?希望能得到一些建议。
java - 巨大的随机数排序列表
我需要创建一个方法,该方法返回一个随机分布的采样数,每次调用该方法时,返回的数字都大于任何先前返回的数字。
或者,换句话说,我需要一个用于随机值排序列表的迭代器。
不幸的是,该列表太大而无法在整个内存中创建。我想出的第一个想法是将我的值空间划分为桶,其中每个桶包含某个范围内的值 [a, b)。假设我的列表有 N 个元素。要创建一个桶,我将对我的分布进行 N 次采样,并将 [a, b) 范围内的每个值放入桶中。该桶之外的值将被丢弃。
这样我可以在每次迭代最后一个时创建一个新的存储桶并保持低内存消耗。
然而,由于我不是统计学专家,我有点担心这会以某种方式搞砸我得到的数字。这是一个合适的方法吗?为每个存储桶使用相同的精确分布生成器(org.apache.commons.math3.distribution.RealDistribution 的一个实例)是否重要?
更新:似乎我在解释我在说什么类型的随机数方面做得不好。
我的数字形成随机分布的样本,例如平均值为 m 方差为 v 的正态分布,或者均匀分布或指数分布。
我使用这些数字来模拟模拟中的某些行为。假设我想在某些时候触发事件。我需要安排数十亿个事件,并且这些事件被触发的时间必须形成一个随机分布的样本。
因此,如果我通过将随机数添加到我以前的数字来导出我的下一个数字,我确实会得到一系列不断增长的随机数,但这些数字不会形成我的分布样本。
c - 随机数创建
我需要100
在说大小为 5000 的数组中生成随机索引arr[5000]
。我认为rand()
会使用更多的 CPU,所以我不想循环 100 次。我只想调用一次,并希望有随机数组索引的机制。我的想法是为前 20 个索引设置随机值,并生成一个偏移量并继续添加到生成的随机值。即,如果10
是前 20 个索引的随机值,那么如果说偏移量,6
那么我的随机数将是10,16,22,28...etc
你认为这是个好主意吗?你能推荐其他的吗?谢谢。