我有一堆
Thing
s.
A
Thing
是一个带有字段 source
的结构,类型为字符串。
目前,我通过简单地对 Thing 进行散列来获得
Things
的确定性采样选择。
def is_thing_sampled(t: Thing):
hashed_thing = my_deterministic_hash(t);
return hashed_thing % 100 < sample_size_pct;
现在我想扩展这个功能,以便它额外地采样特定来源的事物。如果源是
"foo"
,我想对它做另一个级别的采样。
def is_thing_sampled(t: Thing):
hashed_thing = my_deterministic_hash(t)
base = hashed_thing % 100 < sample_size_pct;
if base and t.source == "foo":
# try to sample again. How do I do this??
double_hash = my_deterministic_hash(hashed_thing)
return double_hash % 100 < foo_sample_size_pct
return base
有人可以帮助我了解什么是正确的方法吗?我很想得到一些建议——我对统计完全是个菜鸟。
我们可以使用
while
loop
,这取决于您想要的 additional_samples
的数量:
def is_thing_sampled(t: Thing):
hashed_thing = my_deterministic_hash(t)
base = hashed_thing % 100 < sample_size_pct;
if base and t.source == "foo":
additional_samples = 1
samples = 0
while samples <= additional_samples:
samples += 1
double_hash = my_deterministic_hash(hashed_thing)
base = double_hash % 100 < foo_sample_size_pct
hased_thing = double_hash
return base