下面是我将如何表述这个问题。让您的(可能无限)序列中的项 i=1,2,... . 假设你想 0 < z < 1 对序列中的项进行排序,以生成更稀疏的序列。让 x(i) 表示我们是否包括 i 在我们生成的稀疏序列中。 任何一扇Windows n 连续项目(您选择的位置) n >= 1 ),您希望项目的预期数量为 z*n ,但有可能与预期有所不同。为此,您可以使用(截断)二项分布(链接)与平均值 z*n 和标准差 d (你在哪里挑选 d > 0 ). (它在右边被截断了,因为您不可能选择超过 n 当只有 n 考虑一下!你也可以删去左边的“我一直想要至少 m 每项中的项 n ,在哪里 m 远小于 z*n ,但我想你可以跳过这个。) 现在,您可以确定包含该项的概率 i 在稀疏序列中,根据是否包含每个 n-1 前面的项目 i-1,i-2,...,i-(n-1) :
A = P( x(i) = 1 | x(i - j), 1 <= j < n )
这一切意味着什么?
按照这个公式,你可以选择三个数字: 0 < z < 1 在你的问题中,你已经指明 z 10%——即。, z = 0.1 n >= 1 以及 d > 0 想想 n 作为窗口大小 想想 d 从常规采样到噪声较大的采样模式的偏差量 n = 1 意思是“包括所有项目 i 以概率 z ,与稀疏序列中是否包含其他项无关 n = 100, d = 0.0001 意思是“除极少数情况外,包括 10 在每个连续的 100 “稀疏序列中的项目” 如果你能 d 非常小,你基本上是说“选择每一个 1/z 第四项,有规律地 n = 100, d = 5 意思是“大致包括 5 至 15 在每个连续的 100 “稀疏序列中的项目”
3条答案
按热度按时间jtjikinw1#
配方
下面是我将如何表述这个问题。让您的(可能无限)序列中的项
i=1,2,...
. 假设你想0 < z < 1
对序列中的项进行排序,以生成更稀疏的序列。让x(i)
表示我们是否包括i
在我们生成的稀疏序列中。任何一扇Windows
n
连续项目(您选择的位置)n >= 1
),您希望项目的预期数量为z*n
,但有可能与预期有所不同。为此,您可以使用(截断)二项分布(链接)与平均值z*n
和标准差d
(你在哪里挑选d > 0
). (它在右边被截断了,因为您不可能选择超过n
当只有n
考虑一下!你也可以删去左边的“我一直想要至少m
每项中的项n
,在哪里m
远小于z*n
,但我想你可以跳过这个。)现在,您可以确定包含该项的概率
i
在稀疏序列中,根据是否包含每个n-1
前面的项目i-1,i-2,...,i-(n-1)
:这一切意味着什么?
按照这个公式,你可以选择三个数字:
0 < z < 1
在你的问题中,你已经指明z
10%——即。,z = 0.1
n >= 1
以及d > 0
想想n
作为窗口大小想想
d
从常规采样到噪声较大的采样模式的偏差量n = 1
意思是“包括所有项目i
以概率z
,与稀疏序列中是否包含其他项无关n = 100, d = 0.0001
意思是“除极少数情况外,包括10
在每个连续的100
“稀疏序列中的项目”如果你能
d
非常小,你基本上是说“选择每一个1/z
第四项,有规律地n = 100, d = 5
意思是“大致包括5
至15
在每个连续的100
“稀疏序列中的项目”dzhpxtsq2#
简单的解决方案是只保存每10个传入的数据点,但这可能会导致有偏见的结果取决于数据的随机性。
如果您想模拟传入流上真正随机的10%样本,可以使用平均值为9的泊松分布来决定在记录下一个条目之前要跳过多少个条目。不过,设定一个上限可能是个好主意,这样你就不会在数据中出现罕见但可以预见的巨大差距。
tct7dpnv3#
以你的评论为例:
数据之间没有相关性。
你需要在一天中的特定时间取样。
在这种情况下,您可以跟踪在每个时间间隔(例如,餐厅每半小时营业)内通过的数据总数(或者仅仅是一个0到9的计数器,当你达到10的时候会重置为0。)
抓住你在每个时间间隔看到的第一个,让9滴在地板上。
冲洗和重复,你应该建立一个良好的10%的取样时间间隔。