Random tep您有1001个元素,因此我们需要选择概率为1000/1001的每个元素。我们选择了第1001个元素,它的概率正好是这个,所以这很好。现在我们还需要证明,每个其他元素也有相同的概率存在于样本中
p(样本中剩余的任何其他元素)=[1-p(该元素为 从样本中删除)]Random tep您有1001个元素,因此我们需要选择概率为1000/1001的每个元素。我们选择了第1001个元素,它的概率正好是这个,所以这很好。现在我们还需要证明,每个其他元素也有相同的概率存在于样本中,random,sampling,Random,Sampling,p(样本中剩余的任何其他元素)=[1-p(该元素为 从样本中删除)] 很好,现在我们已经证明每个元素在样本中的概率为1000/1001。这个精确的论点可以用归纳法扩展到第I步。我认为你使用了无限这个词有点松散,采样的前提是每个元素都有平等的机会出现在样本中,这只有在你至少遍历每个元素的情况下才有可能。因此,我将“无限”转化为一个大数字,表示您需要一个单过程解决方案,而不是多个过程 尽管@abipc的分析方向似乎正确,但并非完全正确,但油藏取样是一种方法 如果我们首先清楚自己想要什么,事情就容易多
很好,现在我们已经证明每个元素在样本中的概率为1000/1001。这个精确的论点可以用归纳法扩展到第I步。我认为你使用了无限这个词有点松散,采样的前提是每个元素都有平等的机会出现在样本中,这只有在你至少遍历每个元素的情况下才有可能。因此,我将“无限”转化为一个大数字,表示您需要一个单过程解决方案,而不是多个过程 尽管@abipc的分析方向似乎正确,但并非完全正确,但油藏取样是一种方法 如果我们首先清楚自己想要什么,事情就容易多了。假设您有N个元素(N个未知元素),您需要选择1000个元素。这意味着我们需要设置一个抽样方案,其中任何元素在样本中的概率恰好为1000/N,因此每个元素在样本中的概率相同(根据其在原始列表中的位置,不优先于任何元素)。@abipc提到的方案运行良好,概率计算如下- 在第一步之后,你们有1001个元素,所以我们需要选择概率为1000/1001的每个元素。我们选择了第1001个元素,它的概率正好是这个,所以这很好。现在我们还需要证明,每个其他元素也有相同的概率存在于样本中 p(样本中剩余的任何其他元素)=[1-p(该元素为 从样本中删除)]
很好,现在我们已经证明每个元素在样本中的概率为1000/1001。这个精确的参数可以使用归纳法扩展到第I步。据我所知,这类算法称为储层采样算法 我从数据挖掘中知道一个,但不知道它的名字:
你所看到的,可以是无限数 据我所知,这类算法称为储层采样算法 我从数据挖掘中知道一个,但不知道它的名字:
你所看到的,可以是无限数 既然你不能存储一个无限的集合,那么假设你有一个无限的字符串序列,你一次只能看到一个,这公平吗?在这种情况下,它归结为在接收到每个字符串时对其进行二进制采样/不采样的决定,唯一的问题是您希望该选择的接受率是多少。@pjs。。“你有一个无限的字符串序列,你一次只能看到一个”似乎很好。在这种情况下,你的抛硬币方案看起来是正确的方法,只是你可能希望接受概率不是1/2。为了更好地理解这个问题,请看@abipc提供的!这个问题就像我想的那样…:“如何随机采样无限流(应选择1000个样本),这样你不知道它何时结束,但何时结束,你必须保存所有你选择的样本。你的内存只能存储1000个元素。”因为你不能存储无限集,假设一次只能看到一个无限的字符串序列,这公平吗?在这种情况下,它归结为在接收到每个字符串时对其进行二进制采样/不采样的决定,唯一的问题是您希望该选择的接受率是多少。@pjs。。“你有一个无限的字符串序列,你一次只能看到一个”似乎很好。在这种情况下,你的抛硬币方案看起来是正确的方法,只是你可能希望接受概率不是1/2。为了更好地理解这个问题,请看@abipc提供的!这个问题就像我想的那样…:“如何对无限流(应选择1000个样本)进行随机采样,这样您不知道它何时结束,但何时结束,您必须保存所选的所有样本。您的内存只能存储1000个元素。”
= [ 1 - p(1001st element is selected) * p(the element is picked to be removed)
= [ 1 - (1000/1001) * (1/1000)] = 1000/1001