【发布时间】:2013-04-03 21:36:31
【问题描述】:
对于我正在开发的应用程序,我需要从一个非常大的数据集中抽取一小部分值,从大约 60 万亿(并且还在不断增长)中抽取大约几百个值。
通常我使用查看均匀随机数 r (0..1) 是否小于 S/T 的技术,其中 S 是我仍然需要的样本项数,T 是我还没有考虑过的设置。
但是,有了这些新数据,我没有时间为每个值掷骰子;太多了。相反,我想生成随机数量的条目以“跳过”,在下一个位置选择值,然后重复。这样我就可以掷骰子并访问列表 S 次。 (S是我想要的样本大小。)
我希望有一种直接的方法可以做到这一点,并按照 S/T 测试的思路创建一个无偏见的样本。
说实话,大致不偏不倚就可以了。
这与此人的问题有关(或多或少是后续问题):
https://math.stackexchange.com/questions/350041/simple-random-sample-without-replacement
- 还有一个小问题……第一个向我展示这个的人称它为“邮递员算法”,但我不确定他是否在拉我的腿。对吗?
【问题讨论】:
-
一个随机分发信件的邮递员?听起来很糟糕 =P 根据名字,也许他的意思是"travelling salesman" problem?无论如何,从
0到1中选择S随机数,然后将它们乘以所有项目的数量,以获得数据集中的指标。请注意,当您选择下一个随机数时,您需要考虑留下选定的数字。 -
这是一个类似的问题stats.stackexchange.com/questions/141238/…,其答案给出了一个有原则的、精确的算法。
标签: random-sample